2015-01-09 93 views
1

我有以下的GStreamer命令工作:GStreamer三通:x264enc + jpegenc - >死鎖?

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°)的流通過TCP 2個MP4流:

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 

但這一個沒有(試圖通過TCP流1個MJPEG流和1個MP4流):

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 

由:

x264enc bitrate=1000 ! mpegtsmux 

任何幫助,將不勝感激......

感謝

回答