Tags: livepeer/mistserver
Tags
3.4 (Stable Release) * __Known issue:__ Cygwin builds have broken WebRTC at the moment (likely fixed next release) * __Removal:__* CMake is no longer supported as a build system (leaving Meson as the only supported build system) * __Feature:__ WebRTC data track support (output only) * __Feature:__ WebRTC path migration support (e.g. switching between client networks without reconnect) * __Feature:__ Support for V4L2 camera input (both raw and (M)JPEG-based) * __Feature:__ Added MistProcAV (transcoder using the ffmpeg library directly), disabled in builds by default * __Feature:__ Support for raw pixel tracks * __Feature:__ Support for listening for incoming RTMPS connections * __Feature:__ Stream processes now have configurable restart behaviour * __Feature:__ Stream processes can now be marked as inconsequential; meaning the stream is considered fully started even when these processes are not running yet * __Feature:__ Support for (M)JPEG HTTP output (both streaming and oneshot) * __Feature:__ API websockets now support in-band authentication * __Improvement:__ Support for upstream mbedtls version 2.X and 3.X (needs dTLS option enabled) * __Improvement:__ Support for dynamic RTP payloads overwriting static payload types (thanks Alex Henrie!) * __Improvement:__ All platforms now show process names in log messages * __Improvement:__ Under Cygwin, log messages now look the same as under Linux * __Improvement:__ All triggers now contain instance ID and instance friendly name in their headers / environment * __Improvement:__ Outgoing HTTP requests now contain an `X-Attempt` header signalling if this was a retried request * __Improvement:__ The local-only UDP API socket was made significantly more robust, with new fallback behaviours * __Improvement:__ MistInBuffer CPU usage reduced * __Improvement:__ Improved invalid TS data detection in TS demuxer * __Improvement:__ RTMP push output CPU usage improved * __Improvement:__ Removed out-of-the-box support for iOS 10 and lower, in favour of better support for iOS 11 and higher * __Improvement:__ Allow HTTP-based outputs to be re-used without full restart (improving proxy performance) * __Improvement:__ Improved handling of X-Real-IP and X-Forwarded-For headers (improving proxy compatibility) * __Improvement:__ MistInMP4 now also supports `.mov` file extensions * __Improvement:__ Support for more precise waiting instructions when waiting for tracks to be available * __Improvement:__ Stream track count no longer limited to 100 tracks; now auto-resizes (on average using less memory than before) * __Improvement:__ WebRTC ICE sessions for multiple tracks are now merged into a single session * __Improvement:__ Local networks are no longer hardcoded as not counting for bandwidth usage; this is now configurable instead * __Improvement:__ WebRTC now returns ICE/STUN/TURN headers for WHIP/WHEP requests in the OPTIONS request already * __Improvement:__ Web interface now has a new and improved stream status page * __Bugfix:__ Fixed memory leak in RTMP receiver * __Bugfix:__ Cygwin builds are supported again * __Bugfix:__ Fix high WebRTC CPU usage * __Bugfix:__ Fixed output segfault when shared memory pages are full * __Bugfix:__ Fixed segfault when pushing to an extremely short target * __Bugfix:__ Fixed DTSC pull key mismatch errors * __Bugfix:__ Fixed DTSC pull not starting at keyframes * __Bugfix:__ Prevent using a full CPU core when waiting for new packets in some situations * __Bugfix:__ Fix unrecognised stream processes breaking the web interface * __Bugfix:__ Fixed `STREAM_END` trigger going off multiple times for a single stream * __Bugfix:__ Outputs will no longer jump to the live point if a specific start time was requested * __Bugfix:__ Socket library would read the wrong remote port for TCP connections * __Bugfix:__ RTMP authentication containing the `+` symbol in the payload(s) now works * __Bugfix:__ Fixes for various subtle concurrency issues in the controller * __Bugfix:__ In some cases, a trigger could get overwritten by stream payload * __Bugfix:__ Fixed several possible segfaults related to HLS output * __Bugfix:__ Fixed crash when applying a limiter to a non-existing track * __Bugfix:__ RTMP push to afreecatv compatibility * __Bugfix:__ Fixed segfault in RTSP input when losing connection to buffer * __Bugfix:__ RTMPS push now sends correct headers * __Bugfix:__ RTMP push now implements the full "secret" Adobe handshake * __Bugfix:__ RTMP URL parser now considers the last slash to be the splitting point between `app` and `stream`, rather than the first slash (matching most other implementations) * __Bugfix:__ RTMP push to GO-RTMP-based implementations compatibility * __Bugfix:__ RTMP push to Odysee compatibility * __Bugfix:__ WebSocket-based outputs now show the correct initial playback timing * __Bugfix:__ RTMP push timestamps are no longer overcorrected * __Bugfix:__ Fixed HTTPS-based WebRTC WHIP input * __Bugfix:__ Fixed rolling restart updates not always actually updating * __Bugfix:__ Improved method of reading random numbers from the OS * __Bugfix:__ Initialise and clean up SRT properly * __Bugfix:__ Fixed SRT input not always shutting down cleanly * __Bugfix:__ Fixed blank hostnames being slow to resolve * __Bugfix:__ Fixed division by zero causing infinite loops rather than crashes * __Bugfix:__ Fixed MP4 input getting stuck when reading an empty file * __Bugfix:__ Fixed MP4 input not handling negative CTS offsets * __Bugfix:__ Fixed segfault when detecting packet loss on a lossy input that is not yet accepted by the system * __Bugfix:__ Fixed segfault when destroying an unallocated internal communication instance * __Bugfix:__ Fixed segfault in info websocket if an otherwise online stream could not be connected to for any reason * __Bugfix:__ Fixed the TS output H264 NAL unit parser (fixes header packets being double-inserted sometimes) * __Bugfix:__ Fixed a race condition in the Livepeer process uploader code * __Bugfix:__ Fixed a race condition in the process cleanup threads * __Bugfix:__ Fixed a possible segfault in the MKVExec process * __Bugfix:__ Fixed a segfault when a blank or extremely short external writer path was used * __Bugfix:__ Fixed loops in track dropping code * __Bugfix:__ WebRTC now returns ICE/STUN/TURN headers for WHIP/WHEP requests using the correct syntax * __Bugfix:__ Multiple push targets triggering at the same time no longer overwrite each others' variables * __Bugfix:__ DTSC pushes now reselect tracks when idle as well, ensuring new tracks are always added to the push * __Bugfix:__ Fixed segfault in all outputs when attempting to start a stream without configured source
3.3 (Stable Release) ==================== * __Feature:__ Added human- and machine-readable exit reasons for most processes, which indicate _why_ a process shut down. * __Feature:__ Added `OUTPUT_END` trigger, which signals exit reason for all pushes (and not just those that push to file) * __Feature:__ Added `INPUT_ABORT` trigger, which signals exit reason for inputs that close with a non-clean exit reason * __Feature:__ The built-in Meta-Player now supports reading subtitle and metadata tracks over websocket, regardless of playback protocol * __Feature:__ Support for JSON metadata tracks in MPEG-TS inputs/outputs * __Feature:__ Support for ingesting AMF metadata over RTMP/FLV and converting to JSON metadata track * __Feature:__ Added new "JSONLine" protocol that supports simple line-by-line ingest of subtitles or JSON metadata in real time over standard input or a listening TCP socket * __Feature:__ Support for creating smaller clips out of any live or VoD stream either on-viewer-demand (all HTTP-based outputs) or on-system-demand (any output compatible with the push output system) * __Feature:__ Support for MP4 push output ("regular" MP4 for clips and/or VoD, fMP4 for live streams) * __Feature:__ Chromecast support in the built-in Meta-Player * __Feature:__ Video pop-out support in the built-in Meta-Player * __Feature:__ Added configurable input idle timeout (previously hard-coded to 15 seconds) * __Feature:__ Added stream tagging APIs and the ability to configure pushes and triggers based on stream tags (the web interface does not support this yet, but the API does) * __Improvement:__ Updated `RECORDING_END` trigger, which now signals the exit reason for pushes to file * __Improvement:__ Support for sending API calls as `application/json` Content-Type with pure JSON in the request body * __Improvement:__ Minimum processing latency for live streams has been reduced from 1 packet (frame) on _each_ track to 1 packet/frame on _any_ track * __Improvement:__ All websocket-based outputs now support the same commands/API for playback and use the same core processing logic * __Improvement:__ MP4 output more strictly conforms to spec, improving compatibility with the Apple ecosystem * __Improvement:__ CPU efficiency improvement in all outputs and especially in MP4-based outputs * __Improvement:__ HLS input's DVR capability was significantly improved (entire input stream DVR window is now available as Mist's DVR window, at minimum), plus major efficiency improvements to HLS and TS parsing code * __Improvement:__ MP4 analyser now supports analysing and printing individual frames/packets * __Improvement:__ SRT output now by default includes all tracks instead of a single track per type * __Improvement:__ Capabilities system had some minor inconsistencies and errors, which have been corrected * __Improvement:__ The built-in web management interface now sets listening SRT and RIST inputs to "Always on" by default * __Improvement:__ HLS push output now supports the new `noendlist` parameter to indicate not wanting to end/close a playlist when output finishes (especially useful for recordings that are intended to be 24/7) * __Improvement:__ Various minor consistency and spelling fixes to the built-in web interface * __Improvement:__ Better display of real-world times and dates in the built-in Meta-Player * __Improvement:__ The update checker has been enabled for public builds, providing update notifications and the ability to install updates on request * __Bugfix:__ API calls that use stream data will now instantly time out rather than using exponential backoff (fixes some slow API calls) * __Bugfix:__ MP4 subtitle track input no longer reads corrupted * __Bugfix:__ Fixed infinite loop in MP4 analyser when reaching end-of-file in the middle of reading an MP4 box * __Bugfix:__ HLS push output no longer writes empty segments when there is no data to write in various edge cases * __Bugfix:__ Fixed WHIP ingest support * __Bugfix:__ SRT input/output now correctly read/write real-world time offsets * __Bugfix:__ HLS recordings now contain correct `DATETIME` tags in all cases
3.2.2 (Bugfix Release) ====================== * __Bugfix:__ RTMP push output sent initial data with wrong timestamps, fixed * __Bugfix:__ The new UDP packet pacing code accidentally broke WebRTC ingest, fixed * __Bugfix:__ A rolling restart will no longer shut down a large percentage of segmented-protocol (e.g. HLS) viewers * __Bugfix:__ Fix local file path DTSH writing (no longer written to a folder called "file:") * __Bugfix:__ HTTP parser no longer chokes on reading an empty response body in non-chunked transfer modes * __Feature:__ Support for AV1 codec in MP4 input and output * __Bugfix:__ Incoming TS-SRT pushes set their UTC offset correctly now * __Bugfix:__ Fixed track masking feature in MistProcMKVExec * __Bugfix:__ If an TS-SRT push comes in and does not immediately send media data, no longer fails to receive the push * __Bugfix:__ Packet jitter calculator no longer shared between inputs of single-process inputs (e.g. TS-SRT, TS-RIST) * __Bugfix:__ Fixed output session shutting down while waiting for a `pushdelay` setting to be applied * __Bugfix:__ SRT and RIST listening sockets no longer kill all connections when there is a viewer for a mid-shutdown stream connected over these protocols * __Bugfix:__ Removed dead code in Meta-Player RAW WebSocket wrapper
* __Feature:__ New API call to reload configuration from disk on demand * __Feature:__ MistServer will now automatically reload the configuration a few seconds after it changes on disk, and write changes to disk after a minute of no changes having been made (behaviour can be changed through command line flag) * __Improvement:__ The internal UDP API now writes its listening host and port to shared memory * __Improvement:__ Code cleanup and speed improvements for the RTP library (affects WebRTC, RTSP and SDP inputs/outputs) * __Improvement:__ WebRTC output now uses packet pacing to prevent sudden bursts of packets * __Improvement:__ Certbot integration shows more helpful errors messages now on failures * __Improvement:__ SRT input now correctly sets internal UTC timestamps * __Improvement:__ Changed "always on" behaviour to simulate always having a viewer rather than running on an entirely different code path * __Bugfix:__ TS-based HLS output now works with audio-only streams again * __Bugfix:__ Trigger success reporting, User Agent logging and the Certbot integration now work out of the box on practically all systems * __Bugfix:__ SRT sockets now correctly set their default options in all cases, and inherit options from their parent socket * __Bugfix:__ H264 filler NAL units no longer cause a dropped frame on RTP-based outputs (affects WebRTC, RTSP and SDP) * __Bugfix:__ Certbot integration no longer fails getting a certificate when one already existed * __Bugfix:__ A manual push (bypassing the API) to a local file target no longer fails * __Bugfix:__ HLS push output small segment prevention now correctly only triggers for VoD sources * __Bugfix:__ Fixed a rare segfault in the controller when shared memory could not be initialized * __Bugfix:__ Fixed a segfault when using an extremely short (or blank) source parameter * __Bugfix:__ SRT inputs no longer get detected as VoD-capable * __Bugfix:__ Fixed JSON library UTF-16 to UTF-8 conversion for high codepoints (e.g. emoji)
PreviousNext