Librtmp — это набор инструментов для работы с RTMP-потоками. Поддерживает все формы RTMP, включая rtmp://, rtmpt://, rtmpe://, rtmpte:// и rtmps://.
allprojects {
repositories {
mavenCentral()
}
}
implementation 'com.gitee.archermind-ti:rtmpohoslib:1.0.0'
Скопируйте файлы из каталогов 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)
RtmpUtil rtmpUtil = new RtmpUtil();
// Второй параметр указывает, является ли это потоком push, true означает поток push, false означает поток pull
rtmpUtil.open("rtmp://your_rtmp_server", false);
// Чтение
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);
// Параметр указывает на приостановку или возобновление работы, true означает приостановку, false означает возобновление
rtmpUtil.pause(true);
boolean isConnect = rtmpUtil.isConnected();
rtmpUtil.close();
Пожалуйста, обратитесь к официальной документации, документации на китайском языке.
Простой пример:
#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;
}
Запуск тестов модулей зависит от наличия сервера RTMP. Если сервера нет, тесты не пройдут.
Если у вас есть сервер RTMP, укажите адрес потока push вашего сервера в атрибуте HOST файла entry/src/ohosTest/RtmpTest
, например:
/**
* Перед тестированием установите значение HOST
*/
public class RtmpTest {
// Здесь необходимо заменить на адрес потока push вашего RTMP сервера
private static final String HOST = "здесь замените на адрес потока push вашего RTMP сервера";
В среде Linux процесс компиляции описан в openssl/README.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )