gpt4 book ai didi

ubuntu - gstreamer rtp 流媒体网络摄像头

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:41 25 4
gpt4 key购买 nike

我正在尝试使用 OpenCV 和 gstreamer 流式传输我的网络摄像头...为此,我首先使用命令行进行测试:

gst-launch v4l2src ! ffmpegcolorspace ! theoraenc ! rtptheorapay ! udpsink host=localhost port=5000 sync=false -v

然后我尝试使用此命令行查看流式传输:

gst-launch udpsrc port=5000 caps="video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)30/1, width=(int)640, height=(int)480, interlaced=(boolean)false" ! rtptheoradepay ! theoradec ! ximagesink

但我得到一个错误:无法将 udpsrc0 链接到 rtptheoradepay0 并且无法将 udpsrc0 链接到 rtptheoradepay0

然后我尝试使用 vlc 来查看我使用 rtp://@localhost:5000 从网络摄像头获得的内容,但没有任何反应......

我做错了什么???

我正在使用 gstreamer 和从 git 存储库编译的插件运行 Ubuntu 10.10...

提前致谢!

最佳答案

Theora 解码器需要额外的配置参数。以下是规范的摘录:

Theora 做出了与 Vorbis 相同的有争议的设计决定包括 DCT 系数和所有量化的整个概率模型比特流 header 中的 tization 参数。这通常是几百领域。因此,如果没有,就不可能解码流中的任何帧之前已获取编解码器信息和编解码器设置 header 。

您可以在 gst-launch 详细输出中将此配置参数视为一个 loooong base64 编码的字符串:

/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)THEORA, sampling=(string)YCbCr-4:2:0, width=(string)640, height=(string)480, configuration=(string)\"AAAAAbkkHgqZ...gA\\=\\=\", delivery-method=(string)inline, payload=(int)96, ssrc=(guint)109069492, clock-base=(guint)1126428223, seqnum-base=(guint)23181

您需要复制此字符串并将其粘贴到接收 gst 启动脚本中:

$ gst-launch \
udpsrc \
port=5000 \
caps="video/x-raw-yuv \
,format=I420 \
,framerate=30/1 \
,width=640,height=480 \
,interlaced=false \
,configuration=(string)\"AAAAAbkkHgqZ...gA\\=\\=\"" \
! rtptheoradepay \
...

如果您不更改视频编码参数(大小、比特率等),此字符串将保持不变。因此,您可以对其进行硬编码。

关于ubuntu - gstreamer rtp 流媒体网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com