User:StasFomin/GstreamerTranslation
gst-launch hdv1394src ! queue ! decodebin name=d ! queue ! xvimagesink d. ! queue ! alsasink
— Работает, показывает.
Надо задемуксить, и собрать FLV-поток в RTMP.
Путаюсь в mux-demux синтаксисе.
Sample 01
Без звука уже получается... осталось засунуть звук
gst-launch-1.0 -v \ hdv1394src \ ! queue \ ! tsdemux name=demux\ ! queue \ ! mpeg2dec \ ! queue \ ! x264enc bitrate=700 tune=zerolatency pass=17 \ ! queue \ ! flvmux streamable=1 name=mux \ ! fakesinc
Sample 02
Вот тут я считал, что demux. в предпоследней строчке даст аудиопоток, который придет в flvmux. Но по графу, видно, что не пришел, т.е. «demux.» ссылка почему-то не работает..
gst-launch-1.0 -v \ hdv1394src \ ! queue \ ! tsdemux name=demux\ ! queue \ ! mpeg2dec \ ! queue \ ! x264enc bitrate=700 tune=zerolatency pass=17 \ ! queue \ ! flvmux streamable=1 name=mux \ ! filesink location="output.flv" \ demux. ! audioresample ! voaacenc bitrate=64 \ ! mux.
Sample 03
Попытки указать порт для звука (с видео все и так вроде отлично) не помогают.
gst-launch-1.0 -v \ filesrc location=mydump.ts \ ! queue \ ! tsdemux name=demux\ ! queue \ ! mpeg2dec \ ! queue \ ! x264enc bitrate=700 tune=zerolatency pass=17 \ ! queue \ ! flvmux streamable=1 name=mux \ ! fakesink \ demux.audio_0814 ! audioresample ! voaacenc bitrate=64 \ ! mux.
Sample 04
Помощь от gmelnikov
gst-launch hdv1394src \ ! tsdemux name=dem \ ! queue \ ! ac3parse \ ! a52dec \ ! audioconvert \ ! audioresample \ ! flvmux streamable=1 name=mux \ dem. \ ! queue \ ! mpegvideoparse \ ! mpeg2dec \ ! x264enc bitrate=768 tune=zerolatency pass=17 \ ! mux. mux. ! filesink location="out.flv"
Вариант, который можно тестировать на тестовом входном файле https://cloud.mail.ru/public/2KtUehQBJLx2/mydump.ts
gst-launch filesrc location="mydump.ts" \ ! tsdemux name=dem \ ! queue \ ! ac3parse \ ! a52dec \ ! audioconvert \ ! audioresample \ ! flvmux streamable=1 name=mux \ dem. \ ! queue \ ! mpegvideoparse \ ! mpeg2dec \ ! x264enc bitrate=768 tune=zerolatency pass=17 \ ! mux. mux. ! filesink location="out.flv"
Sample 05
Проверенный работающий пример от gmelnikov.
Пытался запустить на своем тестовом https://cloud.mail.ru/public/2KtUehQBJLx2/mydump.ts
Версия 0.10 зафейлилась
gst-launch-0.10 \ filesrc location=mydump.ts \ ! tsdemux name=dem \ ! queue \ ! ac3parse \ ! a52dec \ ! audioconvert \ ! audioresample \ ! flvmux streamable=1 name=mux \ dem. \ ! queue \ ! mpegvideoparse \ ! mpeg2dec \ ! x264enc bitrate=768 tune=zerolatency pass=17 ! \ mux. mux.! \ filesink location=test.flv
Получил ошибки
No accelerated IMDCT transform found Подготовка конвейера (PREROLL)... 0:00:00.039853666 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:843:mpegts_base_apply_pmt: Got pmt without pat first. Returning 0:00:00.039918622 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x810 0:00:00.040253360 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x814 0:00:00.040726205 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x810 0:00:00.040803007 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x814 0:00:00.041350560 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x814 0:00:00.041469962 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x810 0:00:00.041866178 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:961:mpegts_base_handle_psi:<dem> bad crc in psi pid 0x814 0:00:00.043802936 14497 0x1cb20f0 ERROR mpegtsbase mpegtsbase.c:895:mpegts_base_apply_pmt: Attempted to apply a PMT on a program that wasn't created 0:00:00.049958082 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:1409:mpegts_base_loop:<dem> error: Внутренняя ошибка потока данных. 0:00:00.050013169 14497 0x1cb20f0 WARN mpegtsbase mpegtsbase.c:1409:mpegts_base_loop:<dem> error: stream stopped, reason error ОШИБКА: из элемента /GstPipeline:pipeline0/GstTSDemux:dem: Внутренняя ошибка потока данных. Дополнительная отладочная информация: mpegtsbase.c(1409): mpegts_base_loop (): /GstPipeline:pipeline0/GstTSDemux:dem: stream stopped, reason error ОШИБКА: конвейер не хочет подготавливаться (PREROLL). Установка конвейера в состояние NULL... Освобождение конвейера...
Версия 1.0 не упала,
gst-launch-1.0 \ filesrc location=mydump.ts \ ! tsdemux name=dem \ ! queue \ ! ac3parse \ ! a52dec \ ! audioconvert \ ! audioresample \ ! flvmux streamable=1 name=mux \ dem. \ ! queue \ ! mpegvideoparse \ ! mpeg2dec \ ! x264enc bitrate=768 tune=zerolatency pass=17 ! \ mux. mux.! \ filesink location=test.flv
но тестовый файл пустой.