0
我有一臺服務器廣播通過GStream具有以下GST-launch命令一個USB攝像頭所生成的視頻:VLC - 如何發揮MJPEG流
gst-launch-1.0 v4l2src ! video/x-raw,width=352,height=288 ! jpegenc! rtpjpegpay ! udpsink host=239.255.12.52 port=5004
現在我需要一個客戶端播放廣播與VLC。我試着打了以下內容:
rtsp://239.255.12.52:5004
但我只得到了以下錯誤:
SDP required:
A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (96).
隨後我試圖找到一個SDP文件,可以幫助我播放流。我試過這個:
v=0
c=IN IP4 239.255.12.52
t=0
m=video 5004 RTP/AVP 96
a=rtpmap:96 JPEG/90000
但它沒有工作。可見光通信日誌只是說:
es error: cannot peek
es error: cannot peek
...
我知道流工作,因爲我可以使用的GStreamer用下面的命令來播放:
gst-launch-1.0 udpsrc uri="udp://239.255.12.52:5004" ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink
但我需要它不VLC播放的GStreamer。有任何想法嗎? 謝謝!
這不是rtsp,但rtp流..但你可以在mpeg ts中存儲元數據,因此不需要sdp - 檢查[this](http://stackoverflow.com/a/35148868/3876138)回答..但你需要使用h264 ..然後你會打開在vlc'udp://@239.255.12.52:5004' – nayana
嗨@otopolsky!我也嘗試使用rtp://239.255.12.52:5004播放流。它也沒有工作。問題是使用h264,正如我們在你提到的答案中所討論的,在流中產生2-3秒的延遲是不可接受的。我發現使用gstreamer並使用mjpeg流,相機的延遲時間不到一秒鐘。但那是如果我使用gst-launch命令在客戶端播放該流。我不能使用。如果我使用mjpeg,用vlc播放流是不可能的?謝謝! – DaveCode
你需要適當的sdp文件,它應該工作 - 如果你有懷疑將gstreamer管道保存到文件中(將它複製到mp4和filesrc中)並檢查它是否可在vlc中播放..並且它的rtp .. rtsp非常複雜,而你將需要有rtsp服務器(有gstreamer變種[這裏](https://gstreamer.freedesktop.org/modules/gst-rtsp-server.html)).. – nayana