1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/archermind-ti-librtmp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 05:21 8b1d38c

librtmp

Краткое описание

Librtmp — это набор инструментов для работы с RTMP-потоками. Поддерживает все формы RTMP, включая rtmp://, rtmpt://, rtmpe://, rtmpte:// и rtmps://.

Функции

  1. Чтение RTMP-потока.
  2. Запись в RTMP-поток.

Интеграция

В OHOS

  1. Сначала добавьте репозиторий mavenCentral() в файл build.gradle проекта:
allprojects {
    repositories {
        mavenCentral()
    }
}
  1. В модуле, где требуется использование, добавьте зависимость в файле build.gradle:
implementation 'com.gitee.archermind-ti:rtmpohoslib:1.0.0'

На C/C++

Скопируйте файлы из каталогов librtmp/src/main/cpp/librtmp и librtmp/src/main/cpp/ssl в свой каталог C++. Затем добавьте следующий код в файл CMakeLists.txt:

# Добавляем указанный файл CMakeLists.txt
add_subdirectory(librtmp)
# Указываем путь поиска заголовков
include_directories(librtmp)

# Связываем librtmp, код можно использовать следующим образом:
target_link_libraries(rtmp hilog_ndk.z)

Использование

OHOS

  1. Подключитесь к RTMP URL:
RtmpUtil rtmpUtil = new RtmpUtil();
// Второй параметр указывает, является ли это потоком push, true означает поток push, false означает поток pull
rtmpUtil.open("rtmp://your_rtmp_server", false);
  1. Прочитайте или запишите byte[]:
// Чтение
byte[] bytes = new byte[2048];
int result = rtmpUtil.read(bytes, 0, bytes.length);

// Запись, здесь массив байтов используется только для справки
byte[] bytes = new byte[]{'F', 'L', 'V', 0x1, 0x5, 0, 0, 0, 0x9, 0, 0, 0, 0};
int result = rtmpUtil.write(bytes);
  1. Приостановите или возобновите работу:
// Параметр указывает на приостановку или возобновление работы, true означает приостановку, false означает возобновление
rtmpUtil.pause(true);
  1. Проверьте, подключён ли к RTMP серверу:
boolean isConnect = rtmpUtil.isConnected();
  1. Закройте соединение с RTMP:
rtmpUtil.close();

C/C++

Пожалуйста, обратитесь к официальной документации, документации на китайском языке.

Простой пример:

#include <rtmp.h>

// Выделяем один RTMP
RTMP *rtmp = RTMP_Alloc();
// Инициализируем
RTMP_Init(rtmp);

// Определяем адрес сервера RTMP
const char *url;

// Настраиваем сервер RTMP
int result = RTMP_SetupURL(rtmp, (char *) url);
if (result) {

    // Необходимо включить для потока push
    // Включить запись, вызвать перед подключением
    // RTMP_EnableWrite(rtmp);

    // Подключаемся к серверу
    result = RTMP_Connect(rtmp, NULL);
    if (result) {
        // Подключаем поток
        result = RTMP_ConnectStream(rtmp, 0);
        if (result) {
            // Реализация потока push и потока pull отдельно, пожалуйста, обратитесь к sample
            ...

            // Закрываем поток RTMP
            RTMP_Close(rtmp);
        }
    }
    // Очищаем сеанс
    RTMP_Free(rtmp);
    rtmp=nullptr;
}

Компиляция

  1. Клонируйте проект на локальный компьютер через git clone.
  2. Откройте проект с помощью DevEco Studio и дождитесь завершения сборки Gradle.
  3. Нажмите «Run» для запуска (для запуска на реальном устройстве может потребоваться настройка подписи).
Тестирование модулей
  1. Запуск тестов модулей зависит от наличия сервера RTMP. Если сервера нет, тесты не пройдут.

  2. Если у вас есть сервер RTMP, укажите адрес потока push вашего сервера в атрибуте HOST файла entry/src/ohosTest/RtmpTest, например:

/**
 * Перед тестированием установите значение HOST
 */
public class RtmpTest {

   // Здесь необходимо заменить на адрес потока push вашего RTMP сервера
   private static final String HOST = "здесь замените на адрес потока push вашего RTMP сервера";
Компиляция OpenSSL

Исходный код OpenSSL.

В среде Linux процесс компиляции описан в openssl/README.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/archermind-ti-librtmp.git
git@api.gitlife.ru:oschina-mirror/archermind-ti-librtmp.git
oschina-mirror
archermind-ti-librtmp
archermind-ti-librtmp
master