2012-11-14 143 views
0

我使用這個GST管道嘗試這個RTSP URL轉換成別的東西:正確的GStreamer管道特定RTSP流的

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,但也許不是。

回答

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 
1

樂章文件不是直接流化。所以你的RTSP源可能會向你發送兩個基本流。 (我猜這是達爾文或其他類似的服務器)因此,您可能必須從rtspsrc一個音頻設置兩個輸出,一個視頻。

rtpmp4vpay用於基本mpeg4流。你的源文件是否有mpeg4視頻編解碼器?如果是h.264,請用rtph264depay替換。您可以將輸出傳遞給解碼器,並在需要時播放。將其送入解碼器。要將它轉儲到h.264中,您首先必須解析並添加nal頭文件(h264parse解析可能嗎?)

rtpmp4gpay最可能被音頻流接受。

我猜你的文件是h.264/aac這就是爲什麼rtpmp4vdepay不會工作和rtpmp4gdepay會。但是,當您設置rtpmp4gdepay時,您無法對視頻進行任何操作,因此您需要這樣做。