New major features
- General: support H264 streams with dynamic SPS / PTS, i.e. streams with a resolution that changes over time. This is particularly useful when dealing with IP cameras, whose resolution can be changed into their settings page
- RTSP server/source: parse all incoming RTP/RTCP packets. This allowed to solve a series of long-standing issues that required a deeper understanding on what exactly is routed by the server, including:
- remove padding from outgoing RTP packets, saving bandwidth
- generate RTCP sender reports automatically; stop routing RTCP packets from publishers to readers
- automatically remux oversized RTP/H264 packets into smaller packets; remove parameter
readBufferSize
since it is not necessary anymore - fix computation of RTCP sender report timestamps, RTCP receiver report timestamps and timestamp of the RTP-Info header, in case of H264 streams with B-frames. This prevents timing issues with FFmpeg and a lot of other software (#622)
Fixes and improvements
- General: fix panic that happened when integer keys are used in config maps (#865)
- General: (breaking change) remove
runOnPublish
; it is replaced by the more genericrunOnReady
- General: add upper limit on H264 NALU size and AAC AU size in order to prevent RAM exhaustion
- RTSP server: set timeout in Session header only when client is playing
- RTSP server: remove Session header from ANNOUNCE responses, supporting some additional clients (#840)
- RTSP server: set multicast TTL to 16 (#873)
- RTSP source: skip tracks with an invalid clock rate (#832)
- RTSP source: support servers that sends UDP packets with a different IP
- RTSP source: support IOI trk-101 (bluenviron/gortsplib#116)
- HLS muxer: fix blank screen on iOS / Android in case of video-only streams (#816)
- HLS muxer: fix format of EXT-X-PROGRAM-DATE-TIME
- HLS muxer: fix computation of last PTS of segments
- HLS muxer: fix (again) DTS computation
- HLS source: support segments with relative URLs
- HLS source: fix freeze that happened during a video decoding error
- HLS source: ignore Annex-B decode errors
- RTMP server: always send H264 configuration before IDR frames