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

OSCHINA-MIRROR/loyin-LivePublisher

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

LivePublisher

Программа для трансляции RTMP на Android.

Использует Camera и AudioRecord для получения исходных аудио- и видеоданных, которые затем кодируются в реальном времени с помощью x264 и faac, а затем передаются на сервер потокового вещания с помощью librtmp. Это проект для личного использования, в java-слое достаточно оставить только PublishNativeJni.java, остальное можно произвольно перепаковать. Реализация кодирования с помощью MediaCodec: https://github.com/EarthXiang/HardWareLiveСоздание транслятора:

     // Разрешение: 480x320 fps: 25 битрейт: 480k частота дискретизации: 44.1k по умолчанию задействован задний камера
     // Если устройство не поддерживает эти параметры, они будут автоматически корректироваться, чтобы соответствовать поддерживаемым параметрам устройства.
     LivePusher livePusher = new LivePusher(480, 320, 480000, 25, 44100, CameraInfo.CAMERA_FACING_BACK); 
     livePusher.setLiveStateChangeListener(this);  
     livePusher.prepare(mSurfaceHolder);

Запуск трансляции:

     livePusher.startPusher("rtmp://ip:port/hub/stream");

Остановка трансляции:

     livePusher.stopPusher();

Освобождение ресурсов:

     livePusher.release();

Установка слушателя состояния:

     public interface LiveStateChangeListener {
     // Сообщение об ошибке (вызывается не из главного потока)
     public void onErrorPusher(int code);
     // Запуск трансляции (вызывается не из главного потока)
     public void onStartPusher();
     // Остановка трансляции (вызывается не из главного потока)
     public void onStopPusher();
 }

Получение сообщений об ошибках:

     switch (code) {
         case -100:
             Toast.makeText(MainActivity.this, "Не удалось начать предварительное просмотр видео", 0).show();
             livePusher.stopPusher();
             break;
         case -101:
             Toast.makeText(MainActivity.this, "Не удалось начать запись аудио", 0).show();
             livePusher.stopPusher();
             break;
         case -102:
             Toast.makeText(MainActivity.this, "Не удалось настроить аудиокодировщик", 0).show();
             livePusher.stopPusher();
             break;
         case -103:
             Toast.makeText(MainActivity.this, "Не удалось настроить видеокодировщик", 0).show();
             livePusher.stopPusher();
             break;
         case -104:
             Toast.makeText(MainActivity.this, "Не удалось настроить транспортный поток", 0).show();
             livePusher.stopPusher();
             break;
     }
``````markdown
this, "Проблемы с сервером потокового вещания или с сетью", 0).show();
livePusher.stopPusher();
break;
}

Комментарии ( 0 )

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

Введение

Пуш-протокол RTMP для Android Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

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

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/loyin-LivePublisher.git
git@api.gitlife.ru:oschina-mirror/loyin-LivePublisher.git
oschina-mirror
loyin-LivePublisher
loyin-LivePublisher
master