0

我正在尝试使用此 gst 管道将此 RTSP URL 转换为其他内容(任何内容!):

gst-launch rtspsrc location=rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov ! rtpmp4vdepay ! filesink location=somebytes.bin

这给出了以下错误:

ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2791): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-linked (-1)

所以我想这是关于将 rstp 源连接到 depayloader 的问题。如果我将管道更改为使用 rtpmp4gdepay 而不是 vdepay,它会工作并产生一些东西,但我不确定输出格式是什么。

有谁知道我应该使用什么管道从这个 URL 获取视频?我假设它是 mp4/h264/aac,但也许不是。

4

2 回答 2

2

先试试这个:

gst-launch-0.10 -v playbin2 uri=rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov

或者

gst-launch-1.0 -v playbin uri=rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
于 2012-11-23T13:32:40.603 回答
1

mov 文件不能直接流式传输。因此,您的 RTSP 源可能会向您发送两个基本流。(我猜这是 darwin 或其他类似的服务器)所以您可能需要从 rtspsrc 设置两个输出,一个用于音频,一个用于视频。

rtpmp4vpay 用于基本的 mpeg4 流。您的源文件是否具有 mpeg4 视频编解码器?如果是 h.264,则将其替换为 rtph264depay。您可以将输出传递给解码器并根据需要播放。将其输入到 decodebin。要将其转储到 h.264 中,您首先必须对其进行解析并添加 nal 标头(也许是 h264parse 解析?)

rtpmp4gpay 最有可能被音频流接受。

我猜你的文件是 h.264/aac,这就是为什么 rtpmp4vdepay 不起作用而 rtpmp4gdepay 会起作用的原因。但是当您设置 rtpmp4gdepay 时,您没有对视频做任何事情,所以您需要这样做。

于 2012-11-30T14:32:06.617 回答