Problem with playing RTP streams sent thru IPv6
Posted: 14 May 2010 14:43
Hello Everyone,
I asked about this problem in the VLC Windows Troubleshooting forum today. But then realized it is not exactly a Windows related problem. So reposting this in this forum also. Sorry about that.
I am facing a problem while using VLC to play an RTP stream that is sent through IPv6. I use the following SDP file to describe the stream.
No A/V playing happens when given this SDP file as input (thru GUI) to VLC. I've enabled the verbose level to 2 and got the following debug message.
But a network protocol analyser (Wireshark) shows that the IP packets with dest address ff15:0:0:0:0:0:0:0400 are being pumped properly.
Doubting that this might be a problem with VLC receiving IPv6 data, I wrote a simple packet forwarder application that receives the IPv6 packets, converts them to IPv4 and push them to a given (239.99.99.99) IPv4 address. Then I modified the SDP file to the following, replacing the IPv6 address with the IPv4 address.
This works for now, but has introduced the additional forwarding threads as overhead into the application.
Is there anything wrong with the original SDP file I have used? It doesn't seem so to me, because all I changed in the second file was only the IP address. Does VLC support receiving RTP data sent through IPv6?
Thanks in advance.
- Mahesh
I asked about this problem in the VLC Windows Troubleshooting forum today. But then realized it is not exactly a Windows related problem. So reposting this in this forum also. Sorry about that.
I am facing a problem while using VLC to play an RTP stream that is sent through IPv6. I use the following SDP file to describe the stream.
Code: Select all
/* Start of SDP file */
v=0
o=
s=
m=audio 10202 RTP/AVP 97
c=IN IP6 ff15:0:0:0:0:0:0:0400
b=AS:48
a=rtpmap:97 mpeg4-generic/24000/2
a=fmtp:97 profile-level-id=15; config=1310; streamtype=5; ObjectType=64; mode=AAC-hbr; SizeLength=13; IndexLength=3; IndexDeltaLength=3
m=video 10200 RTP/AVP 96
c=IN IP6 ff15:0:0:0:0:0:0:0400
b=AS:256
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=42E00C; sprop-parameter-sets=Z0LgDJZSAoPy,aM44gA==; packetization-mode=1
/* End of SDP file */
I have also attached the complete log file below for more details.main debug: `C:\mySDP.sdp' successfully opened
live555 error: no data received in 10s, aborting
main debug: EOF reached
main debug: closing input
main debug: removing module "live555"
main debug: removing module "access_file"
main debug: removing module "faad"
Code: Select all
-- logger module started --
main debug: CPU has capabilities 486 586 MMX MMXEXT SSE SSE2 FPU
main debug: looking for memcpy module: 3 candidates
main debug: using memcpy module "memcpymmxext"
main debug: waiting for thread completion
main debug: thread 3816 (playlist) created at priority 0 (playlist/playlist.c:184)
main debug: waiting for thread completion
main debug: thread 3832 (preparser) created at priority 0 (playlist/playlist.c:210)
main debug: looking for interface module: 1 candidate
main debug: using interface module "hotkeys"
main debug: thread 3856 (interface) created at priority 0 (interface/interface.c:231)
main debug: looking for interface module: 1 candidate
logger: VLC media player - version 0.8.6h Janus - (c) 1996-2008 the VideoLAN team
logger:
Warning: if you can't access the GUI anymore, open a command-line window, go to the directory where you installed VLC and run "vlc -I wx"
logger: using logger...
logger warning: no log filename provided, using `vlc-log.txt'
logger debug: opening logfile `vlc-log.txt'
main debug: using interface module "logger"
main debug: thread 3884 (interface) created at priority 0 (interface/interface.c:231)
main debug: adding playlist item `C:\mySDP.sdp' )
main debug: looking for interface module: 3 candidates
main debug: using interface module "wxwidgets"
main debug: thread 3916 (manager) created at priority 0 (interface/interface.c:216)
wxwidgets debug: Using last windows config '(-1,0,0,1024,768)(0,110,145,355,105)(6,0,0,-1,150)'
wxwidgets debug: id=0 p=(110,145) s=(355,105)
wxwidgets debug: id=6 p=(0,0) s=(-1,150)
main debug: nothing requested, starting
main debug: creating new input thread
main debug: waiting for thread completion
main debug: thread 4024 (input) created at priority 1 (input/input.c:265)
main debug: creating statistics handler
main debug: drive letter C: found in source
main debug: ``C:\mySDP.sdp'
main debug: creating demux: access='' demux='' path=`C:\mySDP.sdp'
main debug: looking for access_demux module: 1 candidate
main debug: creating access '' path=`C:\mySDP.sdp'
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: `C:\mySDP.cue'
vcd debug: could not find .cue file
access_file debug: opening file `C:\mySDP.sdp'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: creating demux: access='' demux='' path=`C:\mySDP.sdp'
main debug: looking for demux2 module: 45 candidates
live555 debug: RTP subsession 'audio/MPEG4-GENERIC'
live555 debug: RTP subsession 'video/H264'
main debug: selecting program id=0
main debug: using demux2 module "live555"
main debug: looking for a subtitle file in C:\
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "faad"
main debug: thread 4176 (decoder) created at priority 2 (input/decoder.c:159)
main debug: looking for decoder module: 28 candidates
ffmpeg debug: libavcodec initialized (interface 3349504 )
ffmpeg debug: postprocessing disabled
ffmpeg debug: ffmpeg codec (h264) started
main debug: using decoder module "ffmpeg"
main debug: looking for packetizer module: 17 candidates
packetizer_h264 debug: found NAL_SPS
main debug: using packetizer module "packetizer_h264"
main debug: thread 4284 (decoder) created at priority 0 (input/decoder.c:159)
main debug: `C:\mySDP.sdp' successfully opened
live555 error: no data received in 10s, aborting
main debug: EOF reached
main debug: closing input
main debug: removing module "live555"
main debug: removing module "access_file"
main debug: removing module "faad"
main debug: thread times: real 0m11.530733s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 4176 joined (input/decoder.c:191)
main debug: killing decoder fourcc `mp4a', 0 PES in FIFO
ffmpeg debug: ffmpeg codec (h264) stopped
main debug: removing module "ffmpeg"
main debug: thread times: real 0m11.046380s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 4284 joined (input/decoder.c:191)
main debug: killing decoder fourcc `h264', 0 PES in FIFO
main debug: removing module "packetizer_h264"
main debug: thread times: real 0m12.265075s, kernel 0m0.109375s, user 0m0.062500s
main debug: thread 4024 joined (input/input.c:412)
main: nothing to play
main debug: removing all interfaces
main debug: thread times: real 0m25.936338s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 3916 joined (interface/interface.c:258)
main debug: removing module "wxwidgets"
main debug: thread times: real 0m26.467564s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 3884 joined (interface/interface.c:258)
-- logger module stopped --
Doubting that this might be a problem with VLC receiving IPv6 data, I wrote a simple packet forwarder application that receives the IPv6 packets, converts them to IPv4 and push them to a given (239.99.99.99) IPv4 address. Then I modified the SDP file to the following, replacing the IPv6 address with the IPv4 address.
When this modified SDP file was given as input (thru GUI) to VLC, the stream started playing without any issues./* Start of modified SDP file */
v=0
o=
s=
m=audio 10202 RTP/AVP 97
c=IN IP4 239.99.99.99
b=AS:48
a=rtpmap:97 mpeg4-generic/24000/2
a=fmtp:97 profile-level-id=15; config=1310; streamtype=5; ObjectType=64; mode=AAC-hbr; SizeLength=13; IndexLength=3; IndexDeltaLength=3
m=video 10200 RTP/AVP 96
c=IN IP4 239.99.99.99
b=AS:256
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=42E00C; sprop-parameter-sets=Z0LgDJZSAoPy,aM44gA==; packetization-mode=1
/* End of modified SDP file */
This works for now, but has introduced the additional forwarding threads as overhead into the application.
Is there anything wrong with the original SDP file I have used? It doesn't seem so to me, because all I changed in the second file was only the IP address. Does VLC support receiving RTP data sent through IPv6?
Thanks in advance.
- Mahesh