无法更改 gstreamer 中的输出格式

cannot change output format in gstreamer

我使用的相机支持每秒 30 帧和 25 帧的 1080 和 720p 视频。我可以在我的 ARM 板上使用以下 gstreamer 命令让网络摄像头流式传输

gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw, width=1920, 
height=1080, format=(string)YUY2, framerate=30/1" ! xvimagesink sync=false -e 

但是,我发现我无法更改这些参数中的任何一个。例如,如果我将 framerate 更改为 25/1,我会得到错误:

error: streaming task paused, reason not-negotiated (-4)

我想知道这是否是硬件问题,或者我是否错误地使用了 gstreamer,可能有更好的方法来做到这一点。

要了解详细信息,您可以查看调试日志,GST_DEBUG=3,v4l*:6 应该会给您一些信息。

但总而言之,问题是您的相机驱动程序不想为 GStreamer 提供带有这些上限的东西,例如25fps 而不是 30fps。如果你改变其他东西,它也可能是接收器不接受这些上限的问题顺便说一句,你可能想在 xvimagesink 前面放置一个 videoconvert 和 videoscale 来防止这种情况。