We are trying to use ffplay to join a live video source in a network that uses IGMPv3 source-specific multicast.
If we use an SDP file this works fine and wireshark shows that ffplay correctly sends a source-specific multicast membership report.
However, when we try to join the same source using RTSP, ffplay seems to ignore the source-specific address contained in the SDP response to RTSP DESCRIBE and fails because it tries to join for any source. This is the command used:
ffplay -loglevel debug -rtsp_transport udp_multicast -protocol_whitelist rtp,udp,tcp -i rtsp://[username:password]@[ip address]/stream0
The SDP response as reported by ffplay includes:
a=source-filter: incl IN IP4 * [ssm ip address]
The only error reported by ffplay is:
Failed to parse interval end specification ''
Wireshark shows that ffplay is not performing an SSM join:
Membership Report / Join group [group IP address] for any sources
Further details in the screenshot below. Are we doing something wrong, is this a feature of ffplay or a potential bug?
I note that libavformat/rtsp.h contains the comment /** The following are used only in SDP, not RTSP */ against code for sdp port, source-specific multicast addresses, etc. I’m not sure if that hints at our issue being because of a feature in ffmpeg.