gstreamer + raspivid帧率控制

时间:2018-09-25 16:45:19

标签: raspberry-pi gstreamer raspbian gstreamer-1.0

我正在使用以下命令从rapsberry pi流式传输视频:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=<host> port=<port>

并捕获:

gst-launch-1.0 udpsrc port=<port> ! application/x-rtp, encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink sync=false

现在,我想降低流式视频的帧速率。我发现-fps命令的raspivid参数不能按预期工作(运行raspivid -t 0 -fps 15 -o -不会改变输出视频帧率)。因此,我决定使用videorate gstreamer元素对其进行更改:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! omxh264dec ! videorate ! video/x-raw,framerate=15/1 ! omxh264enc ! rtph264pay config-interval=1 pt=96 ! udpsink host=<host> port=<port>

但是捕获的视频具有超高的延迟和帧速率。当我尝试在树莓派上播放视频而没有流媒体时,效果相同:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! omxh264dec ! videorate ! video/x-raw,framerate=15/1 ! videoconvert ! autovideosink

或没有更改帧速率的事件:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! omxh264dec ! autovideosink

如何在raspbian上使用gstreamer更改h264编码视频的视频帧率?

Debian 8

gstreamer 1.4

1 个答案:

答案 0 :(得分:1)

您可以改为更改摄像机输出的帧速率。通过在raspivid中添加-fps规范来尝试此操作:

raspivid -t 0 -fps 10 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config- 
interval=1 pt=96 ! udpsink host=<host> port=<port>