在 gstreamer 中解析不带上限的原始视频

发布于 2025-01-11 02:30:38 字数 1004 浏览 0 评论 0原文

我有以下管道

发送方

gst-launch-1.0 videotestsrc ! "video/x-raw,width=1280, height=720,framerate=30/1" ! shmsink socket-path=/tmp/stream sync=true wait-for-connection=false shm-size=100000000

接收方

gst-launch-1.0 shmsrc socket-path=/tmp/stream is-live=1 ! video/x-raw,width=1280,height=720,framerate=30/1,format=BGR ! videoconvert ! queue ! autovideosink

有没有办法可以将 caps 数据包含在共享内存中而不是在接收方指定该数据?

我想要的是这样的东西,

gst-launch-1.0 shmsrc socket-path=/tmp/stream is-live=1 ! video/x-raw ! videoconvert ! queue ! autovideosink

目前显示

ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format

我可以尽可能多地修改发送者,但希望让接收者更符合我的需求。

对于像 h264 这样的编码视频,上述情况是可能的,但对于原始视频则不然。

I have the following pipelines

sender

gst-launch-1.0 videotestsrc ! "video/x-raw,width=1280, height=720,framerate=30/1" ! shmsink socket-path=/tmp/stream sync=true wait-for-connection=false shm-size=100000000

receiver

gst-launch-1.0 shmsrc socket-path=/tmp/stream is-live=1 ! video/x-raw,width=1280,height=720,framerate=30/1,format=BGR ! videoconvert ! queue ! autovideosink

Is there a way i can include the caps data in the shared memory instead of specifying that data on the receiver side?

what i want is something like

gst-launch-1.0 shmsrc socket-path=/tmp/stream is-live=1 ! video/x-raw ! videoconvert ! queue ! autovideosink

This currently shows

ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format

I can modify the sender as much as possible but want to keep the receiver more general to my needs.

The above is possible with encoded video like h264 but not raw video.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文