gstreamer + raspivid 帧率控制

gstreamer + raspivid framerate control

我正在使用以下命令从 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

现在我想降低流媒体视频的帧率。我发现 raspivid 命令的 -fps 参数没有像我预期的那样工作(运行 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

您可以改为更改相机输出的帧率。通过在 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>