2011-01-22 42 views
0

我在一個嵌入式設備上編寫應用程序,該設備接收攜帶G.729,PCM或H.264的RTP流。數據包作爲char *到達我的應用程序到RTP數據包。我希望能夠看到或聽流(作爲測試),但在這個設備上我沒有播放器。我想我可以將這個流轉發到一個套接字上,並在其他地方播放RTP流,就像在運行播放器的Linux機器上一樣。這可能嗎?我沒有RTSP,只有RTP。比如,VLC是否可以做到這一點?我可以簡單地將RTP數據包發送到套接字以在另一側播放它們嗎? 謝謝!使用套接字從嵌入式設備播放RTP流

回答

0

不,你不能。簡單的RTP不包含關於流格式等的任何信息,只有關於數據包本身的信息:序列號,時間戳,附加同步信息。流RTP的最簡單方法是RTP/MPEG TS(MPEG Transport Stream)。

不幸的是我不知道準備好使用解決方案。 VLC可以通過UDP從文件中流式(並播放)這樣的流,因此它從文件容器格式中獲取所需的信息。這樣的解決方案可能需要外部的流媒體描述SDP格式和您的實際RTP包

[編輯]順便說一句,這是奇怪的,你得到只是RTP流W/O其格式的任何描述,通常是通過RTSP莫名其妙地提供對其的描述, MPEG-TS或別的東西,包含H.264碼流SDP的

0

您可以通過UDP套接字轉發RTP數據包。

+0

好了,我向前打開的UDP套接字,我可以使用VLC的另一面?文件 - >打開netwrok ...->打開RTP/UDP流,然後作爲協議我選擇什麼?我想RTP,因爲它是實際的協議。我對嗎?這是正確的方法嗎? RTP頭中的數據應該足以讓VLC瞭解有效載荷內部和呈現內容,對嗎?謝謝! – 2011-01-22 10:31:43

+1

RTP是協議,它指定每個RTP數據包頭中的實際媒體有效載荷類型。許多RTP有效載荷類型通過靜態/默認參數(時鐘頻率等)向IANA註冊。但是,可以使用其他參數。 SIP/SDP,RTSP或任何其他協議通常用於在傳輸實際RTP流之前通告/協商RTP參數。我不知道如何/如何VLC處理。 – 2011-01-23 03:47:30

0

例如:

Server: rtsp server 

Content-type: application/sdp 

Content-base: rtsp://[some URL] 

Content-length: 505 



v=0 

o=rtsp 1295996924 1590699491 IN IP4 0.0.0.0 

s=RTSP Session 

i=rtsp server 

c=IN IP4 192.168.1.2 

t=0 0 

a=control:* 

m=audio 0 RTP/AVP 97 

a=rtpmap: 97 mpeg4-generic/8000/1 

a=fmtp: 97 streamtype=5; profile-level-id=15; objectType=2; mode=AAC-hbr; 

a=range:npt=now- 

a=control:trackID=0 

m=video 0 RTP/AVP 96 

a=rtpmap:96 H264/90000 

a=fmtp:96 profile-level-id=42E015; sprop-parameter-sets=Z0LgFdoHgtE=,aM4wpIA=; packetization-mode=1 

a=range:npt=now- 

a=framesize:96 480-352 

a=control:trackID=1 
相關問題