gstreamer rtmpsrc к rtmpsink

Я хочу перехватить живой входящий поток флэш-медиа, сгенерированный через веб-камеру, с клиентского компьютера с помощью плагина gstreamer rtmpsrc и преобразовать его в какой-нибудь обрабатываемый формат. Проблема заключается в том, что когда я пытаюсь просмотреть входящий поток мультимедиа rtmp с помощью следующей команды, я вижу вывод, но когда я пытаюсь сохранить поток в файл, используя filesink, он вообще не работает.

gst-launch-0.10 rtmpsrc location='rtmp://127.0.0.1/flvplayback/mynewstream live=1' ! flvdemux name=d d. ! queue ! decodebin ! xvimagesink

Я также хочу построить этот конвейер в программе C/ C ++, чтобы я мог обрабатывать входящие элементы. Я написал код для " filesrc -> appsrc -> appsink -> filesink ", и он отлично работает.

Однако, когда я пишу код для "rtmpsrc -> appsrc -> appsink -> rtmpsink ", это не работает. Я новичок в программировании на gstreamer, так что вы можете мне помочь или подсказать хороший ресурс, где я могу получить такие уроки программирования или примеры.

Мой системный конфиг:

Linux Ubuntu 12.04 64 бит

crtmpserver x86_64

gstreamer 0.10

2 ответа

Я думаю, что вы можете использовать flvdemux отдельно видео (H.264) и аудио (MPEG 4 AAC), а затем обрабатывать их. Так, как задержка 10 сек:queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=10000000000,

пример:

gst-launch-1.0 rtmpsrc location=rtmp://XXXX ! flvdemux name=mydemuxer flvmux name=mymuxer ! queue ! rtmpsink location=rtmp://XXXX mydemuxer.audio ! queue ! mymuxer.audio mydemuxer.video ! queue ! mymuxer.video

Зачем вам нужны appsrc и appsink? Попробуйте rtmpsrc! Filesink, чтобы выгрузить файл напрямую.

Другие вопросы по тегам