Gstreamer 无法通过 rtspsrc 播放音频
Posted
技术标签:
【中文标题】Gstreamer 无法通过 rtspsrc 播放音频【英文标题】:Gstreamer unable to play audio through rtspsrc 【发布时间】:2015-03-05 10:33:13 【问题描述】:我无法从 rtsp 服务器播放音频,我的视频播放没有问题,但我尝试播放音频时出现了一些错误, 以下是用于播放视频的命令:
C:\gstreamer\1.0\x86_64\bin>gst-launch-1.0 rtspsrc location=rtsp://192.168.2.116/axis-media/media.amp latency=0 !decodebin ! autovideosink
但是,当我将 autovideosink 更改为 autoaudiosink 时,如下所示:
C:\gstreamer\1.0\x86_64\bin>gst-launch-1.0 rtspsrc location=rtsp://192.168.2.116/axis-media/media.amp latency=0 !decodebin ! autoaudiosink
我收到以下错误:
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1:
streaming task paused, reason not-linked (-1)
我是 *** 和 Gstreamer 的新手,非常感谢您的帮助
【问题讨论】:
【参考方案1】:感谢 thiagoss 的回复,我在使用以下管道播放视频和音频方面取得了第一次成功:
gst-launch-1.0 rtspsrc location=rtsp://192.168.2.116/axis-media/media.amp latency=0 name=src src. ! decodebin ! videoconvert ! autovideosink src. ! decodebin ! audioconvert ! autoaudiosink
【讨论】:
【参考方案2】:IIRC rtspsrc 将为每个流输出一个 pad(视频和音频可能是分开的),因此您可以将视频输出链接到 audiosink。
您可以使用 -v 运行以查看每个焊盘上的大写字母并进行验证。然后您可以通过在 gst-launch-1.0 中使用焊盘名称正确链接:
类似:
gst-launch-1.0 rtspsrc location=rtsp://192.168.2.116/axis-media/media.amp latency=0 name=src src.stream_0 !decodebin ! autovideosink
检查正确的 stream_%u 编号以用于每个流以使其正确链接。
您也可能只是在视频接收器之前缺少一个视频转换。我也会测试一下。
【讨论】:
你好 thiagoss,我没有足够的声誉来投票你的答案,我想在这里表达我最大的感谢!以上是关于Gstreamer 无法通过 rtspsrc 播放音频的主要内容,如果未能解决你的问题,请参考以下文章
如何通过动态链接在 GStreamer 合成器中正确播放视频?
Gstreamer Gstreamer中通过UDP(RTP)远程播放MP3