Gstreamer videomixer极低的帧率

时间:2016-07-15 09:45:41

标签: raspberry-pi gstreamer frame-rate

我正在尝试合成来自三个Rapsberry PI的三个流。

只要我使用videomixer插件将两个流连接在一起,就会收到以下结尾的消息:

管道:pipeline0 / GstOSXVideoSink:osxvideosink0: 可能存在时间戳问题,或者此计算机速度太慢。

奇怪的是,我的任务监视器仅指示gst

的大约15%的CPU使用率

使用三个流,帧速率变得无法使用。我希望我的I7 macbook能够毫无问题地处理这个问题....

这是我用于混音的代码,在这种情况下只是一个流(/ sink?)。 谁能告诉我是否有明显的错误?或者我应该在哪里寻找瓶颈并改进它? 谢谢 !

gst-launch-1.0 videomixer name=m sink_1::xpos=400 sink_2::ypos=300 ! autovideosink \
-v udpsrc port=9000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264'! rtph264depay ! video/x-h264,width=400,height=300,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! m. \
-v udpsrc port=9001 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! video/x-h264,width=400,height=300,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! m. \
-v udpsrc port=9002 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! video/x-h264,width=400,height=300,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert !  m.

以下是我用来从RPI相机发送流的代码。

raspivid -n -w 640 -h 480 -t 0 -o - \
| gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay \ 
config-interval=10 pt=96 ! udpsink host=192.168.1.3 port=9000

1 个答案:

答案 0 :(得分:0)

尝试为每个视频解码添加队列元素,并sync=false添加到视频接收器。

gst-launch-1.0 videomixer name=m sink_1::xpos=400 sink_2::ypos=300 ! videoconvert ! ximagesink sync=false \
udpsrc port=9000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! video/x-h264,width=400,height=300 ! h264parse ! avdec_h264 ! queue ! videoconvert ! m. \
udpsrc port=9001 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! video/x-h264,width=400,height=300 ! h264parse ! avdec_h264 ! queue ! videoconvert ! m. \
udpsrc port=9002 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! video/x-h264,width=400,height=300 ! h264parse ! avdec_h264 ! queue ! videoconvert !  m.

现在我对此的免责声明是,我不确定该视频是否适当平滑且同步,但看起来效果不错。

此外,在raspivid上,您可能希望将config-interval属性添加到rtph264pay元素。

raspivid -n -w 640 -h 480 -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 ! multiudpsink clients=192.168.1.3:9000,192.168.1.3:9001,192.168.1.3:9002