Releases: OvenMediaLabs/OvenMediaEngine
v0.20.5
[Compatibility]
- Compatible with dependencies installed via prerequisites.sh in version 0.19.0 or later.
- Compatible with the Server.xml configuration format used in version 0.12.6 or later.
- Compatible with Origin and Edge versions 0.21.0 or later.
[Added]
- Added an option to set the TimestampMode for RTMP/SRT/MPEG-TS push publishers.
- Added receive timeout support to the Transcode webhook.
- Added ConnectionTimeout and SendTimeout settings to the Push Publisher.
- Added
maxWidthandmaxHeightproperties to the Track object. - Added the
Oven-CapabilitiesHTTP header (max_width=,max_height=) in WHIP. - Added
ExtraOptionsvideo encoding settings for the x264 encoder. - Added a resolution validity check to the H.264/H.265 parser.
- Added support for HLS subtitles.
- Added a FIRInterval setting to the WebRTC Provider.
- Added the
<RtcpBasedTimestamp>option to the WebRTC Provider (default: false). This allows OME to start playback immediately for WHIP input without waiting for RTCP. - Added the
forwardDataoption to ScheduledChannel items (default: false). When set to true, data from the live input is forwarded through the ScheduledChannel. - Added Transport-cc support to WebRTC Bandwidth Estimation, enabling more precise automatic switching in WebRTC ABR.
- Added a
max_fpsoption to OvenCapabilities in WHIP and amax_fpsfield to Stream Info.
[Improved]
- Improved the wrap-around algorithm for the time value inside the TS container.
- Improved logs to show the Transcode webhook response time.
- Improved the Push Publisher to output detailed logs upon failure.
- Improved the logic to prevent duplicate encoder creation.
- Improved the automatic SkipFrames configuration algorithm.
- Improved the cleanup process for (LL-)HLS streams to be faster, regardless of the connection status.
- Improved performance by fixing the number of sessions when (LL-)HLS operates in Origin mode.
- Improved multi-audio input to allow selecting a track by index for Push when VariantName is duplicated.
- Improved multi-audio input to allow selecting a track by index for Record when VariantName is duplicated.
- Optimized transcoding performance by minimizing unnecessary memory copies.
- Improved RTMP encoder compatibility.
- Improved the accuracy of framerate and keyFrameInterval calculations.
- Reduced shutdown times that could previously take longer than expected.
- Improved compatibility between OME and WHIP simulcast in OBS 32.1.0.
- Improved LLHLS playback behavior in OME to address abnormal playback caused by compatibility issues with Shaka Player.
[Changed]
- Changed the default number of retries for the OVT Provider to 0.
- Moved the subtitle configuration from
<Application><OutputProfiles><MediaOptions><Subtitles>to<Application><Subtitles>. - Updated the GET Stream API so that
outputs[]information is returned for streams pulled via OVT. - Updated to support hardware acceleration (Transcoding, Speech-To-Text) with NVIDIA Driver 535+ and CUDA 12.0+.
[Fixed]
- Fixed an issue where the recorded file sometimes got corrupted when the stream ended.
- Fixed a crash that occurred when socket creation failed in the OVT Provider.
- Fixed an issue where receiving an unknown RTMP AMF message could cause a crash.
- Fixed an issue where the Timeout setting in AdmissionWebhooks was not working correctly.
- Fixed an issue where, when WHIP and LLHLS connected as a single session, the connection could be routed to an incorrect module.
- Fixed an issue where the OVT Publisher could crash due to malicious packets.
- Fixed an issue where a crash could occur due to invalid video metadata.
- Fixed an issue where a delayed Transcode webhook blocked other streams.
- Fixed a crash that occurred when the Transcode webhook response is returned as an array.
- Fixed an issue where the session was terminated if the DTS was not monotonically increasing during an RTMP Push.
- Fixed an issue where the DTS might not increase monotonically during event insertion via the API.
- Fixed an incorrect frame rate value in HLS/LL-HLS playlists when using SkipFrames.
- Fixed OVT to correctly synchronize the
publicName,maxWidth, andmaxHeightproperties of media tracks. - Fixed an issue where streams in the SRT Publisher might not be properly cleaned up.
- Fixed incorrect information display for tracks with reused encoders.
- Fixed an issue where OVT streams could miss network events.
- Fixed an issue where FairPlay playback could fail on iOS.
- Fixed an issue where restart requests failed for applications dynamically created via the API.
- Fixed an issue where the OVT Publisher's stream might not terminate completely when using OriginMapStore.
- Fixed an issue in LLHLS OriginMode where HTTP requests received immediately upon stream start could be missed.
- Fixed an issue where the AdmissionWebhooks opening event could be triggered twice when using E-RTMP.
- Fixed a default path issue in recording when FilePath is not specified.
- Fixed a recording failure caused by unsupported codecs.
- Fixed an issue where the closing event might not be delivered when using AdmissionWebhooks in certain environments.
- Fixed an issue where video encoded with an NVIDIA GPU became corrupted when the input resolution changed dynamically in WebRTC.
- Fixed an issue where the closing event was not delivered to AdmissionWebhooks when an ICE timeout occurred during WHIP streaming.
- Fixed an issue where
real_ip(X-REAL-IP or X-FORWARDED-FOR) might not be delivered to AdmissionWebhooks during WHIP streaming in environments using an HTTP proxy. - Fixed an issue where VP8 simulcast did not work correctly.
- Fixed an issue where the OVT Publisher attempted to register an RTSP URL again in Redis when it was already pulled from OriginMapStore.
- Fixed an intermittent crash when streams were rapidly created and deleted.
- Fixed an issue where SRT connections could fail under certain conditions.
- Fixed an issue where
avgThroughputInandavgThroughputOutin GETv1/stats/current/could be overestimated. - Fixed LLHLS so that at least one audio track is always configured with
DEFAULT=YESandAUTOSELECT=YES. - Fixed a potential crash when an AAC track with a corrupted audio sample rate (0) is received.
- Fixed an intermittent crash that occurred during simultaneous start/stop recording API requests.
- Fixed a memory leak on stream deletion when DelayBufferTimeMs was configured.
- Fixed a crash when the input stream ends during repeated push connection failures.
v0.20.0
[Compatibility]
Compatible with dependencies installed via prerequisites.sh in version 0.19.0 or later
Compatible with the Server.xml configuration format used in version 0.12.6 or later
Compatible with Origin and Edge versions 0.19.0 or later
[Added]
- Added H.265 codec support to the RTSP Pull provider
- Added Subtitle feature in LLHLS (https://docs.ovenmediaengine.com/dev/subtitles)
<Preview>Added Realtime Speech-to-Text subtitle feature using Whisper (https://docs.ovenmediaengine.com/dev/subtitles/realtime-speech-to-text)- Added Dump feature to Legacy HLS (Thanks to @c-cabral #1846)
- Added ThreadPerSocket option
[Improved]
- Improved to support certain RTSP cameras that transmit in a non-standard way
- Improved the wrap-around algorithm for the time value inside the TS container
- Improved Get Stream Info API to include metadata for Passthrough (bypass) output streams.
- Improved ScheduleChannel to preload scheduled files to reduce file switching time
- Improved the transcoder to optimize memory usage
- Improved logs to show the TranscodeWebhook response time
- Improved support for VideoIndexHint/AudioIndexHint even in Multiplex-only Playlists (Thanks to @mbakumenkov #1961)
- Added Date Header for all http response
[Fixed]
- Fixed a crash issue that occurred under certain conditions when recording to a file
- Fixed issue where malformed data in RTMP could cause abnormal termination
- Fixed an issue where the recorded file sometimes got corrupted when the stream ended.
- Fixed an issue where the Fallback Program was not updated in certain situations in ScheduleChannel
- Fixed ScheduleChannel to make the Fallback Program always start playing from the first item
- Fixed the crash issue when releasing the NVIDIA encoder
- Fixed memory leak issue when using multiple GPUs
- Fixed an issue where event data was dropped when using the schedule channel
- Fixed a crash that occurred when socket creation failed in the OVT Provider
- Fixed an issue where receiving an unknown RTMP AMF message could cause a crash
- Fixed an issue where the Timeout setting in AdmissionWebhooks did not work correctly
- Fixed an issue where, when WHIP and LLHLS connected as a single session, the connection could be routed to an incorrect module
- Fixed an issue where the OVT Publisher could crash due to malicious packets
- Fixed issue where a crash could occur due to invalid video metadata
- Fixed an issue where a delayed transcode webhook blocked other streams
- Fixed crash when Transcode webhook response is returned as an array.
- Fixed INTERNAL_QUEUE_CONGESTION message not being duplicated when sending queue congestion notification
[Changed]
- Changed the location of global CORS settings outside of VirtualHost
v0.19.0
[Compatibility]
- Compatible with dependencies installed via prerequisites.sh in version 0.19.0 or later
- Compatible with the Server.xml configuration format used in version 0.12.6 or later
- Compatible with Origin and Edge versions 0.19.0 or later
[Added]
- Added infinite loop prevention during filler frame generation
- Added ErrorToleranceDurationMs option to Scheduled Channel.
- Added H.265 codec support to WebRTC
- Added a default playlist named master to the default configuration, and it supports both simulcast and singlecast
- Added E-RTMP (Enhanced RTMP) support.
- Added StreamStatus rule to the Alert.
- Added TimestampMode to (Options: ZeroBased, Original)
- Added PacketSilenceTimeoutMs to Push Provider (Default: 0, ignored)
- Added LL-HLS and HLS-ready detection to alert
- Added 32/64 byte aligned addresses and data padding to prevent decoding crashes.
- Added mutex for sequential sending in TLS data handling to ensure thread safety
- Added mutex locks for thread safety in HPACK encoder and decoder
[Improved]
- Improved mux streams to be able to be encoded.
- Improved segmentation to be more precise when markers are inserted into HLS
- Improved Mux Provider to use buffered packets.
- Improved Scheduled Channel to start playback from the correct position in the Item based on the current time and the scheduled attribute in the Program
- Improved streamid handling in SRT Provider/Publisher to use host name instead of vhost (#1847, #1848)
- Improved CDN integration performance by removing the protection that forcefully closed TCP connections when receiving HLS URL requests that didn't match the expected pattern.
- Reduced CPU usage of the Mux Provider
[Fixed]
- Fixed the video corruption issue that occurs during input source transitions when using the NVIDIA encoder
- Fixed the timebase of ScheduledChannel
- Fixed a regression bug where WebRTC Provider drops RTCP SR.
- Fixed SRT/MPEG-TS Provider to ignore unsupported tracks.
- Fixed issue where duplicate stream names were not blocked when streaming via SRT/MPEG-TS.
- Fixed issue where action APIs were not called when the stream name contained a colon.
- Fixed the issue of OBS WHIP (with NVENC) incompatibility.
- Fixed incorrect resolution parsing when streaming with WebRTC Simulcast.
- Fix memory leak issue when packaging SRT input stream into audio-only HLS.
- Fixed an issue where the HTTPS Client module would throw an exception
- Fixed an issue where Opus audio would break upon OVT reconnection
- Fixed an issue where ServerTimeBasedSegmentNumbering might not be synchronized in HLS.
- Fixed an intermittent issue where a connection failure could occur when starting RTMP Push.
- Fixed a regression bug where the start property of an Item in ScheduledChannel was not working.
- Fixed an issue where a track might not play due to track ID conflicts when using multitrack video in E-RTMP.
- Fixed an issue where playback could restart under certain conditions during WebRTC streaming.
- Fixed an issue where video encoding quality would intermittently degrade.
- Fixed potential malfunction of SignedPolicy and AdmissionWebhooks in SRT.
- Fixed an issue where build failure on RHEL 8/9
- Resolved a potential issue where HTTP/2 responses could be sent incorrectly in certain situations.
[Changed]
- Changed to remove the codec_tag value when using the RTMP (FLV) format.
- Removed socket options related to SRT latency and bandwidth.
- Ensured SRT-related in Server.xml overrides them.
- Split the StreamStatus event in Alert into separate events for ingress and egress.
v0.18.0
[Compatibility]
- Compatible with dependencies installed via prerequisites.sh in version 0.17.3 or later
- Compatible with the Server.xml configuration format used in version 0.12.6 or later
- Compatible with Origin and Edge versions 0.18.0 or later
[Added]
- Added SRT Publisher
- Added WHIP Simulcast
- Added simulcast support in WebRTC Provider
- Added WebP image codec for Thumbnails
- Added H265 in MPEG-2 TS container
- Added SendEvents API
- Added lookahead encoding option, excluding Xilinx encoder.
- Added support for ${SourceStream} macro in StreamName in Push/File StreamMap file
- Added multiple audio track support in ScheduleChannel.
- Added #EXT-X-PROGRAM-DATE-TIME tag to HLSv3
- Added CHARACTERISTICS attribute in #EXT-X-MEDIA tag of LLHLS
[Improved]
- Improved to decode audio packets consisting of Multiple Frames
- Improved the transcoder to support seamless transitions in Multi-Audio Tracks
- Improved CORS handling for web browser in WhipServer and improve session ID retrieval
- Improved Xilinx video sdk driver loading script
- Improved stream info API to include default playlist
[Fixed]
- Fixed the issue to prevent duplicate streams from being created with the same name
- Fixed an issue where query strings included in the stream name were not handled
- Fixed an issue where the original URL might not be preserved when calling the setter in ov::Url
- Fixed an issue where data type statistics were not calculated
- Fixed a crash when the input resolution changed with the Xilinx encoder
- Fixed the issue where PTS wrap around occurs when using the XMA decoder
- Fixed HLS timestamp was not accurate
- Fixed an issue where scheduled channels would crash when using live channels
- Fixed changed fallback program not applied
- Fixed an issue where the overall system speed slowed down when logging in the journal system
[Changed]
- Changed ubuntu version of docker host
[Removed]
- Removed HTTP Date Header in HTTP Response
v0.17.3
[Compatibility]
- Compatible with dependencies installed via prerequisites.sh in version 0.14.9 or later
- Compatible with the Server.xml configuration format used in version 0.12.6 or later
- Compatible with Origin and Edge versions 0.15.12 or later
[Added]
- Added lookahead encoding option
[Fixed]
- Fixed the issue to prevent duplicate streams from being created with the same name
- Fixed an issue where query strings included in the stream name were not handled
- Fixed an issue where the original URL might not be preserved when calling the setter in
ov::Url
v0.17.2
[Compatibility]
- Compatible with dependencies installed via prerequisites.sh in version 0.14.9 or later
- Compatible with the Server.xml configuration format used in version 0.12.6 or later
- Compatible with Origin and Edge versions 0.15.12 or later
[Added]
- Added support for HEAD method in LLHLS, HLS, and API
- Added support for ID3 Timed Metadata in HLSv3
- Added thread count setting for software-based decoder
- Added keyframe-only decoding when no video encoding is present
[Improvements]
- Improved Playlist order maintenance in HLSv3
- Improved speed of unused Session deletion in LLHLS Publisher
- Improved prevention of Stream deletion during recording
- Improved LLHLS segmentation policy for more stable streaming
- Improved stability of ScheduledChannel for more reliable streaming
[Fixes]
- Fixed an issue where memory could be exhausted if incorrect RTMP packets were continuously received
- Fixed an issue where the encoder could not be selected by codec name
- Fixed an issue where the NVIDIA driver could not be loaded in some versions
- Fixed an issue where Safari could stop intermittently when changing ABR
- Fixed an issue where a crash occurred when the policy value was empty in SignedPolicy
- Fixed an issue where only one recording and push were possible in one stream
- Fixed an issue where hardware resources were not released properly on program exit
- Fixed an issue where AdmissionWebhooks might not include the stream name
[Changed]
- Changed to CUDA Scaler instead of NPP Scaler.
- The value of the "crossDomains" field in the API response has been changed as follows.
Before:
"crossDomains": [
"url1",
"url2"
]
After:
"crossDomains": {
"urls": [
"url1",
"url2"
],
"headers": [
{"key": "value"},
{"key2": "value2"}
]
}
v0.17.1
[Compatibility]
- Compatible with dependencies installed via
prerequisites.shin version 0.14.9 or later. - Supports
Server.xmlconfigurations from version 0.12.6 and later. - Compatible with Origin and Edge versions 0.15.12 and above.
[Added]
- Added the
<CreateDefaultPlaylist>option for WebRTC, LL-HLS, and HLSv3 publishers, allowing them to disable default playlist creation (default: true).
[Changes]
- Updated LL-HLS legacy mode to use a lower HLS version (HLS version 6).
- Modified H.264/H.265 decoding to use a different multithreading type.
- Changed the policy so that if a track registered in an HLSv3 playlist rendition does not exist, TS files are still generated.
- Dynamic app auto-deletion in Edge can now be disabled with the
<Modules><DynamicAppRemoval>option (default: false).
[Improvements]
- Improved Origin to continuously attempt stream registration in
OriginMapStore. - Made
ome_docker_launchercompatible with non-GNU awk. - Improved Docker container shutdown to properly terminate when receiving a SIGTERM signal (#1531).
[Fixes]
- Fixed an issue where
HLSDumpwould not write old segments to files under certain conditions. - Resolved a crash that occurred when applications were shutting down.
- Fixed an issue where thumbnails were not displaying correctly when using the JPEG codec.
- Fixed an issue where the application would suddenly stop when using Push.
- Corrected an issue where the playback time of recorded files was displayed incorrectly.
- Fixed Xilinx driver installation failure on Ubuntu 20.x.
- Resolved an issue where HLSv3 could hang and continue consuming memory.
- Modified
X-TARGETDURATIONto be the nearest integer number of seconds (#1700). - Fixed an issue where the application occasionally failed to shut down properly.
- Corrected the use of
HlsChunklistPathDepthinstead ofHLSChunklistPathDepthin the Mux Provider (#1694).
v0.16.8
Urgent Patch - 0.16.7 is unusable and has been removed.
[Compatibility]
- Compatible with dependencies(
prerequisites.sh) installed in 0.14.9 or later - Compatible with
Server.xmlused in 0.12.6 or later - Compatible with version 0.15.12 or higher of Origin or Edge
[Added]
- Supports the following proxy values in
AdmissionWebhooksandSignedPolicy- Nginx's
X-Forwarded-ForandX-Real-IP
- Nginx's
- Added NVIDIA Driver installation script for Rocky Linux
[Improved]
- Improved smooth transitions in Scheduled Channel
[Fixed]
- Fixed an issue where Edge could crash when it was running as a Dynamic Application
- Fixed an issue where Scheduled Channels might not play in certain situations
- Removed code for debugging that prevented WebRTC playback in 0.16.7 release
v0.16.6
[Compatibility]
- Compatible with dependencies(prerequisites.sh) installed in 0.14.9 or later
- Compatible with Server.xml used in 0.12.6 or later
- Compatible with version 0.15.12 or higher of Origin or Edge
[Added]
-
Added a new HLS Publisher, now officially supporting legacy HLS version 3 based on TS Containers (existing DASH, LLDASH, Legacy HLS are completely deprecated)
-
Added concludeHlsLive action API
[Changed]
- Deprecated DASH, LLDASH, HLS
- Changed the default number of decoder threads for S/W H.264, H.265
[Improved]
- Improved Get Stream API to also respond with Default Playlist
- Improved support for dynamic resolution input in XMA Codec and NV Codec
- Supported for MPEG-2 TS containers in ScheduledChannel (#1611)
- Supported aac in TS file and opus in MP4 file in ScheduledChannel (#1618)
- Added various statistics to the GET Stream API (e.g. bitrateConf, bitrateAvg, bitrateLatest)
- Improved Keyframe Interval stability in encoders
- Supported SRT access control style streamid
- Enhanced AppWorker distribution algorithm
- Improved Stream Action API to work with mux and scheduled as well
- Improved Mux Provider to not drop initial packets
[Fixed]
- Fixed an issue where Output Stream was not created when Framerate was not set
- Fixed issue potentially causing deadlock (#1633)
- Fixed crash issue when unable to obtain tc_url from RTMP stream (#1631, #1639)
- Fixed RTMP compatibility issue (#1631)
- Fixed MPEG-2 TS buffer not being consumed under certain conditions
- Fixed AUD NAL code
v0.16.5
[Compatibility]
Compatible with dependencies(prerequisites.sh) installed in 0.14.9 or later
Compatible with Server.xml used in 0.12.6 or later
Compatible with version 0.15.12 or higher of Origin or Edge
[Added]
- Added Automated Recording (https://airensoft.gitbook.io/ovenmediaengine/recording-experiment#automated-recording)
- Added PRIV frame into HLS ID3 TimedMata
- Added SAMPLE-AES-CTR mode encryption to LLHLS DRM
- Added GET /v1/version API
- Added Multiplex Channel Provider (https://airensoft.gitbook.io/ovenmediaengine/live-source/multiplex-channel)
[Changed]
- Change the root of the relative path of Multiplex Provider and Scheduled Provider from the path where the existing binary was located to the path where Server.xml is located
- Changed the base image of Dockerfile to Ubuntu 22.04 (#1527)
[Improved]
- Improved to change the output resolution to a multiple of 4 for XMA compatibility
- Improved RTSP Pull Provider to ignore unsupported codecs during negotiation (#1394)
- Improved to not overwrite existing files during ``make install``` (#1536)
[Fixed]
- Fixed compatibility issues in RTMP provider (#1541)
- Fixed "Extention failed" error in XMA scaler
- Fixed libnppig.so library could not be found in docker (#1508)
- Fixed an issue where filter resources were not released intermittently
- Fixed an issue where files recorded with passthrough were corrupted (#1551)
- Fixed issue where RTSP Pull stream sometimes does not start (#1516)
- Fixed a regression bug where LLHLS Dump's chunklist was generated incorrectly (#1509)