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

OSCHINA-MIRROR/archermind-ti-librtmp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

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

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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