Ok...it seems to be down to the IGMP request, and more specifically Single Source Multicast...
If I provide an sdp file as above and present it to, for instance, VLC player, then tshark shows me:
- Code: Select all
146.777143 <local_ip> -> 224.0.0.22 IGMP V3 Membership Report / Join group <multicast_video_address> for any sources
146.785156 <local_ip> -> 224.0.0.22 IGMP V3 Membership Report / Join group <multicast_video_address> for source {<unicast_video_address>}
At which point the stream is joined
However, when I try the same using ffmpeg:
- Code: Select all
ffmpeg -i test.sdp
ffmpeg version 1.1.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 22 2013 14:35:01 with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52)
configuration: --enable-gpl --enable-libvorbis --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[sdp @ 0x17126500] Could not find codec parameters for stream 0 (Video: mpeg4, yuv420p): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[sdp @ 0x17126500] Estimating duration from bitrate, this may be inaccurate
test.sdp: could not find codec parameters
Then the same tshark filter shows:
- Code: Select all
456.597623 <local_ip> -> 224.0.0.22 IGMP V3 Membership Report / Join group <multicast_video_address> for any sources
458.410757 <local_ip> -> 224.0.0.22 IGMP V3 Membership Report / Join group <multicast_video_address> for any sources
466.613846 <local_ip> -> 224.0.0.22 IGMP V3 Membership Report / Leave group <multicast_video_address>
At which point ffmpeg gives up.
It looks like the SSM field of the IGMPv3 request isn't being populated by ffmpeg? Does this make sense?