Использование Gstreamer или ffmpeg для создания rtsp-клиента на Android

Я хочу транслировать поток rtsp на Android и, наконец, пришел к выводу, что не могу использовать MediaPlayer, Videoview и т. Д. Android API, потому что задержка для меня большая проблема. Мне нужна задержка ‹500 мс. Теперь я планирую использовать Gstreamer или ffmpeg для создания клиента rtsp для Android. у меня просто мало сомнений

  1. Сможет ли клиент Gstreamer или ffmpeg обеспечить задержку ‹500 мс. Я читал, что есть некоторые параметры, которые я могу настроить, чтобы получить очень низкую задержку. Просто хочу подтвердить. У меня очень хорошая пропускная способность сети. Размер кадра обычно 1920х1080.

  2. Я читал, что Gstreamer сделан на один уровень выше ffmpeg и использует для работы кодеки ffmpeg. Я хочу знать, с каким из них проще работать для создания клиента Android. Работаем на Gstreamer или работаем напрямую на ffmpeg.

  3. Если я использую клиент Gstreamer для Android, придется ли мне также использовать сервер Gstreamer для потоковой передачи данных? В настоящее время я использую сервер Live555 RTSP для потоковой передачи данных.


person Pankaj Bansal    schedule 12.10.2014    source источник
comment
не могли бы вы указать причину для отрицательного голосования по моему вопросу?   -  person Pankaj Bansal    schedule 21.10.2014
comment
Есть ли у вас большие успехи с rtsp player. Я изо всех сил пытаюсь добиться производительности (менее 1 секунды в потоке), можете ли вы поделиться знаниями   -  person user2934930    schedule 22.01.2015
comment
@user2934930 user2934930 Ni, я не смог этого добиться. Люди из GStreamer сказали мне, что есть какая-то ошибка в порте GStreamer для Android, и я не смогу транслировать в формате 720P. У вас есть возможность стримить в 720р. Задержка также больше 2 секунд   -  person Pankaj Bansal    schedule 22.01.2015
comment
я работаю над этим до сих пор не большой успех.   -  person user2934930    schedule 23.01.2015
comment
вы пробовали ffmpeg?   -  person user2934930    schedule 23.01.2015
comment
Сейчас я перешел на использование vlc android. Я не думаю, что GStreamer может служить цели   -  person Pankaj Bansal    schedule 23.01.2015
comment
сколько задержек вы получаете с помощью vlc? меньше 1сек?   -  person user2934930    schedule 23.01.2015
comment
На самом деле я попробовал плагин vlc для Android из магазина игр, и он может легко запускать видео 720P, но задержка больше. Задержку можно настроить с помощью некоторых флагов, которые я могу настроить, самостоятельно скомпилировав код vlc. Я делаю это прямо сейчас.   -  person Pankaj Bansal    schedule 23.01.2015
comment
Вы пробовали ffmpeg или GStreamer и смогли воспроизвести поток в хорошем качестве?   -  person Pankaj Bansal    schedule 23.01.2015
comment
В настоящее время я работаю над gstreamer, но я слышал несколько хороших слов о ffmpeg.   -  person user2934930    schedule 23.01.2015


Ответы (1)


Я не могу говорить о ffmpeg, но для GStreamer:

1) Да, вы можете получить задержки намного ниже 500 мс, используя GStreamer в качестве RTSP-клиента. См. свойство latency на rtspsrc (к которому, например, можно получить доступ через сигнал setup-source, если вы используете playbin... и вы должны). По умолчанию установлено значение 2000 миллисекунд (что является безопасным значением по умолчанию), но если ваша сеть достаточно быстрая, вы можете установить это значение намного меньше.

2) Это зависит от вашего опыта работы с обоими API. Для меня приложение GStreamer было бы намного проще, и вы можете найти несколько примеров в Интернете: https://coaxion.net/blog/2014/08/gstreamer-playback-api/ http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials (учебники по Android)

3) Вы можете использовать любой стандартный совместимый сервер RTSP, оба должны работать. GStreamer имеет очень простой, но мощный API и включен в бинарные файлы GStreamer для Android, которые вы можете получить здесь: http://gstreamer.freedesktop.org/data/pkg/android/1.4.3/

person Sebastian Dröge    schedule 19.10.2014