2012-01-16 40 views
0

我有我的程序產生如下的SDP文件:無法獲得libvlc發揮SDP文件

v=0 
c=IN IP4 192.168.0.20 
t=0 0 
m=audio 1235 RTP/AVP 101 
a=recvonly 
a=rtpmap:101 speex/16000/1 
a=fmtp:101 media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)101, ssrc=(uint)3395200432, clock-base=(uint)1773032113, seqnum-base=(uint)12387 
a=maxptime:20 
m=video 1234 RTP/AVP 97 
a=recvonly 
a=rtpmap:97 H264/90000 

我確信,我的服務器是流與那些負載類型和瓶蓋這些端口。 但是,vlc不會拾取視頻或音頻。

然而,如果顛倒視頻和音頻,像這樣:

v=0 
c=IN IP4 192.168.0.20 
t=0 0 
m=video 1234 RTP/AVP 97 
a=recvonly 
a=rtpmap:97 H264/90000 
m=audio 1235 RTP/AVP 101 
a=recvonly 
a=rtpmap:101 speex/16000/1 
a=fmtp:101 media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)101, ssrc=(uint)3395200432, clock-base=(uint)1773032113, seqnum-base=(uint)12387 
a=maxptime:20 

,我拿起視頻,但仍然沒有音訊。

任何想法?

回答

0

好吧,對於你們這些使用Google搜索的人來說。出於某種原因,您只能通過vlc的偶數端口號接收媒體。

1

因此,隨機磕磕絆絆地...擡起頭來。

這是因爲偶數端口通常用於RTP,奇數用於RTCP。 VLC使用Live555進行後端RTP/RTCP解析,我敢肯定,偶數/奇怪的事情是硬編碼的情況。

+0

是的,live555硬編碼了很多東西。例如,speex解碼器只會解碼窄帶,因爲程序員認爲它只能接收8khz。 –