GStreamer Tee: x264enc + jpegenc -> тупик?

У меня работают следующие команды GStreamer:

1°) потоковая передача 2 потоков MJPEG через TCP:

gst-launch-1.0 v4l2src device=/dev/video0 ! deinterlace mode=1 ! videorate ! videoscale ! tee name=tp \
\
tp. ! queue ! video/x-raw, framerate=10/1, width=960, height=540 ! jpegenc quality=40 ! multipartmux ! tcpserversink host=0.0.0.0 port=8093 \
\
tp. ! queue ! video/x-raw, framerate=15/1, width=960, height=540 ! jpegenc quality=40 ! multipartmux ! tcpserversink host=0.0.0.0 port=8096

2°) потоковая передача 2 потоков MP4 по TCP:

gst-launch-1.0 v4l2src device=/dev/video0 ! deinterlace mode=1 ! videorate ! videoscale ! tee name=tp \
\
tp. ! queue ! video/x-raw, framerate=10/1, width=960, height=540 ! x264enc bitrate=1000 ! mpegtsmux ! tcpserversink host=0.0.0.0 port=8093 \
\
tp. ! queue ! video/x-raw, framerate=15/1, width=960, height=540 ! x264enc bitrate=1000 ! mpegtsmux ! tcpserversink host=0.0.0.0 port=8096

Но это не так (попытка передать 1 поток MJPEG и 1 поток MP4 через TCP):

gst-launch-1.0 v4l2src device=/dev/video0 ! deinterlace mode=1 ! videorate ! videoscale ! tee name=tp \
\
tp. ! queue ! video/x-raw, framerate=10/1, width=960, height=540 ! jpegenc quality=40 ! multipartmux ! tcpserversink host=0.0.0.0 port=8093 \
\
tp. ! queue ! video/x-raw, framerate=15/1, width=960, height=540 ! x264enc bitrate=1000 ! mpegtsmux ! tcpserversink host=0.0.0.0 port=8096

В командной строке написано:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...

Звучит неплохо, но я не могу воспроизводить потоки в VLC (он работает с 1-й командной строкой).

Единственное изменение заключается в том, что я заменил только один из потоков:

jpegenc quality=40 ! multipartmux

by :

x264enc bitrate=1000 ! mpegtsmux 

Любая помощь будет оценена ...

Спасибо


person Tim Autin    schedule 09.01.2015    source источник


Ответы (1)


Нашел ответ здесь: http://gstreamer-devel.966125.n4.nabble.com/Pipeline-Freezes-When-Adding-In-Tee-With-x264enc-td4301890.html

Использование «x264enc tune=zerolatency» заставило его работать!

person Tim Autin    schedule 13.01.2015