Opened 2 years ago

#9657 new defect

SSRC change on an RTP stream should lead to BYE

Reported by: do_coredump Owned by:
Priority: normal Component: avformat
Version: 4.0.6 Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

when receiving an elementary live video stream (e.g. h264) and the sender of the stream restarts, then the receiving ffmpeg entity ignores all incoming packets due to a different SSRC. This is bad when the sender is an embedded system which might restart any time.

I propose to return RTP_BYE in case a different SSRC is received by the demuxer in ffmpeg

Claus
How to reproduce:

SDP file : 
-----------------
v=0
t=0 0
m=video 35004 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 H264/90000
------------------
* run a receiving ffmpeg instance
** ffmpeg -protocol_whitelist udp,file,crypto,rtp  -i foo.sdp -vcodec copy -acodec copy foo.mp4
* run an ffmpeg version that creates an RTP stream
** ffmpeg -re  -i /tmp/sd.mp4 -vcodec copy -an -f rtp rtp:/127.0.0.1:35004
* kill this instance and restart it (without restarting the receiver)
** ffmpeg -re  -i /tmp/sd.mp4 -vcodec copy -an -f rtp rtp:/127.0.0.1:35004

Output on the receiving instance: 

output on the first receiving instance (relevant output only) : 
[sdp @ 0x55a8cba18780] RTP: dropping old packet received too late
    Last message repeated 528 times

built on ffmpeg version  origin/release/4.0

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (0)

Note: See TracTickets for help on using tickets.