Gstreamer 无法通过 rtspsrc 播放音频

Gstreamer unable to play audio through rtspsrc

我无法从 rtsp 服务器播放音频,我的视频播放没有问题,但是当我尝试播放音频时出现了一些错误, 以下是用于播放视频的命令:

C:\gstreamer.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.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)

我是 Whosebug 和 Gstreamer 的新手,非常感谢您的任何帮助

IIRC rtspsrc 将为每个流输出一个 pad(视频和音频可能是分开的)因此您可以link将视频输出到音频接收器。

您可以 运行 使用 -v 查看每个垫上的盖子并验证这一点。然后你可以通过在 gst-launch-1.0:

中使用 pad 名称来正确 link

类似于:

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 编号以使其link正确编辑。

您也可以在视频接收器之前缺少一个视频转换。我也会测试一下。

感谢 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