v0.20.1

bluenviron/mediamtxv0.20.1Oct 25, 2022by github-actions[bot]

AI Summary

Enhances HLS source compatibility with fMP4 segments and separate audio playlists, and adds extensive configuration parameters for Raspberry Pi Camera.

Key Highlights

  • HLS source support for fMP4 segments and separate audio
  • Raspberry Pi Camera configuration parameters (flip, brightness, gain, etc.)
  • Change default resolution to 1920x1080
  • Support streams with EXT-X-BYTERANGE

Breaking Changes

  • Change default resolution to 1920x1080

New Features

  • HLS source improvements (fMP4, separate audio)
  • Raspberry Pi Camera configuration parameters

Full Release Notes

### New minor features

* HLS source
  * the client has been improved in order to support a wider variety of external HLS streams, in particular: streams with fMP4 segments, streams with audio in separate playlist, streams that use EXT-X-BYTERANGE (#1179) (#1094)

* Raspberry Pi Camera
  * many camera parameters have been added to the configuration file: rpiCameraHFlip, rpiCameraVFlip, rpiCameraBrightness, rpiCameraContrast, rpiCameraSaturation, rpiCameraSharpness, rpiCameraExposure, rpiCameraAWB, rpiCameraDenoise, rpiCameraShutter, rpiCameraMetering, rpiCameraGain, rpiCameraEV, rpiCameraROI, rpiCameraTuningFile, rpiCameraMode (#1198) (#1111)

### Fixes and improvements

* General
    * Fix reading H264 streams that uses Annex-B encoding with a variable delimiter (https://github.com/aler9/gortsplib/commit/b3c70f56f7a1dc2f712230b9264bd7754a8092d2)
    * prepend SPS and PPS once when remuxing H264 stream. This allows to support H264 streams that have multiple IDR NALUs in the same group (8aa719eda5b7806a74ccbb9031ecbf93919f7d6f)
    * impose a limit on the number of H264 NALUs during Annex-B and AVCC unmarshaling (https://github.com/aler9/gortsplib/commit/e97d29084ef2bfa87998fd1577da6d5fa05b1475)
 
* RTSP server
  * send RTCP sender reports to TCP clients too. This allows Nvidia Deepstream to compute the NTP timestamp of frames (https://github.com/aler9/gortsplib/commit/0cfbb1fb30be974b7c4b36dfa34b3a2ad464e18a)
  * when a H264 track has no SPS / PPS yet, do not insert a empty sprop-parameter-sets inside the SPS (https://github.com/aler9/gortsplib/pull/129)

* RTSP source
  * support cameras that sends invalid RTCP packets with TCP (#1085)
  *  support cameras with invalid SSRC in transport header (#1118)

* HLS source
  * in case of live feeds, playback now starts from the end of the stream (#1179)
  * variants with unsupported codecs are now skipped (#1179)

* HLS Muxer
  * use segment IDs as segment names when hlsVariant is mpegts, this prevents conflicts that were previously caused by the fact that the timestamp was used as segment name (42b6e1f922f169a4e8cc9d52643d795f10f1a631)
  * add WWW-Authenticate header when external authentication is enabled (1e788f81fd46c7e8f5314bd4ae04989debfff52c)
  * change m3u8 Content-Type to application/x-mpegURL (680b34890230054da4ad2cd3cf6bf166d3b0ee6a)
  * print only tracks that are effectively being converted (c9de689a72e9f2531004d11d75f5706cf9080f8d)
  * fix compatibility with grafov/m3u8 (dfef3833111cc35e2f896c728c7287a9a4fc43d7)

* Raspberry Pi Camera
  * change default resolution to 1920x1080 (532592c0991c5466c986bb6cacb6c48f3d4e13c3)
  * use exact frame timestamps (4f6121b1c423cecf3b805d0c99dba04c272ddb26)

* API
  * always encode timestamps wth RFC3339 (#1093)
  * mark RTMPS connections as rtmpsConns instead of rtmpConns (#1099)

* apidocs
  * add missing methods rtmpsconns/*(3e529f436a7e2efc2761ad3a2699c98b551f859f)