# Wowza Streaming Engine 4.12.1: Smoother source switching, better H.265 support and S3-compatible cloud storage

**URL:** <https://community.wowza.com/t/wowza-streaming-engine-4-12-1-smoother-source-switching-better-h-265-support-and-s3-compatible-cloud-storage/102864>\
**Category:** Wowza Streaming Engine\
**Created:** [October 21, 2026, 3:43pm UTC](https://community.wowza.com/t/wowza-streaming-engine-4-12-1-smoother-source-switching-better-h-265-support-and-s3-compatible-cloud-storage/102864 "2026-10-21T15:43:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bernd\_Backhaus1](https://sea2.discourse-cdn.com/flex002/user_avatar/community.wowza.com/bernd_backhaus1/32/1328_2.png) [@Bernd\_Backhaus1](https://community.wowza.com/u/Bernd_Backhaus1)\
**Post date:** [October 21, 2026, 3:43pm UTC](https://community.wowza.com/t/wowza-streaming-engine-4-12-1-smoother-source-switching-better-h-265-support-and-s3-compatible-cloud-storage/102864/1 "2026-10-21T15:43:41Z")

</div>

Hello everybody,

Wowza Streaming Engine (WSE) 4.12.1 is now available. The release makes switching video sources during a live stream much smoother, improves H.265 support for WebRTC and HLS, and lets you upload to S3-compatible cloud storage beyond Amazon, as well as a long list of transcoder, WebRTC and reliability fixes and security updates.

Please refer to the

[complete 4.12.1 release notes](https://www.wowza.com/docs/wowza-streaming-engine-4-12-1-release-notes)

for a full list of changes, updates and improvements, which are summarized below:

**Version:** Wowza Streaming Engine™ 4.12.1 build 20261020183206 released Oct 20, 2026.

**Java support:** Wowza Streaming Engine 4.12.1 is compiled using Java 17 (OpenJDK Java SE JRE 17.0.12). It can be used with Java versions 17 or 21. For more details, see [Java version information](https://www.wowza.com/docs/wowza-streaming-engine-4-9-7-release-notes#java-version-information).

### 

Summary of new features and fixes

**Smoother source switching in the transcoder**

The live transcoder now handles a change of source in the middle of a stream, for example a [LoopUntilLive](https://www.wowza.com/docs/how-to-loop-a-pre-roll-until-a-live-stream-starts-loopuntillive) switch from a looping video to a live feed, or a [scheduled playlist](https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher) moving between VOD files with different resolutions or codecs. Viewers should no longer see long pauses, choppy or frozen video, or glitches.

- **Decoder recovery:** Failed decoder creation is now retried, and repeated rebuilds are reduced when a configuration keeps being rejected.
- **Codec-switch stalls:** No more long output interruption when video arrives before the replacement codec configuration.
- Fixes for visual artifacts, very low frame rates and frozen video after a source change, plus a decoder memory leak (see bug fixes below).
- Many fixes for NVIDIA and [NETINT](https://www.wowza.com/docs/netint) hardware transcoding, covering resolution, bit-depth, HDR and color range changes.

**Better H.265 support**

- **H.265 over WebRTC:** The H.265 RTP packetizer now inserts VPS/SPS/PPS before keyframes that lack them, just like the H.264 packetizer already does. H.265 sources that send their parameter sets only once or out of band (common for RTMP, RTSP and SRT encoders) now play over WebRTC and WHIP stream targets.
- **RTSP/RTP H.265 ingest:** CRA and BLA pictures are now detected as keyframes, so open-GOP sources (the default for x265 and most HEVC encoders) keep producing HLS chunks.

**S3-compatible cloud storage**

[S3 cloud storage stream targets](https://www.wowza.com/docs/send-apple-hls-and-mpeg-dash-content-to-amazon-s3-using-wowza-streaming-engine) can now upload to S3-compatible storage services, such as Fastly Object Storage.

- **URL template:** The new `cloudstorage.urlTemplate` property takes `host[:port][/path]` and may include `${bucketName}`, `${region}`, `${serviceType}` and `${domainSuffix}`.
- **Access permissions:** The new `cloudstorage.acl` property sets the `x-amz-acl` header (`public-read` by default; `none` omits the header).
- **Playback URLs:** S3 playback URLs now follow the target’s playback host, playback SSL and bucket root path.
- **WSE Manager:** The **Advanced** tab shows **URL Template** , **Domain Suffix** , **Object ACL** , **SSL** and **Playback Over SSL** when the S3 provider is selected.
- Cloud storage targets that can’t create their storage connection now report **Error** instead of **Active**.

**Reliability and WebRTC improvements**

- **Shutdown:** The transcoder and SRT now shut down within a bounded time, and the server reports anything that did not stop in time instead of hanging.
- **WebRTC on EC2:** The EC2 metadata probe used to discover the server’s public address can now be turned off. Add the new `webrtcHarvestEnableAwsHarvester` property to `<WebRTC><Properties>` in the application’s `Application.xml` and set it to `false`.
- Restarting an application now closes all of its WebRTC peer connections (WebSocket signaling, WHIP and WHEP).
- The Windows updater now installs codec files correctly.

#### Bug fixes

- Fixed garbled, pixelated or ghosted transcoded video when the source switches between streams, for example with the LoopUntilLive module.
- Fixed transcoded output dropping to well under 1 fps after a source codec change on all transcoding paths except NVIDIA EVA.
- Fixed a memory leak where every source codec change kept the previous decoder’s frame buffers allocated for the rest of the session.
- Fixed transcoded output staying near 1 fps for an extended period after the transcoder fell behind and switched to decoding keyframes only.
- Fixed about 25 seconds of frozen transcoded video after a decoder failed to deliver a picture.
- Fixed colors staying wrong for the rest of the session on NVIDIA EVA transcoding when a source switch also increased the resolution.
- HDR transitions: Tone-mapping state is now reset when sources change, and pictures whose HDR-to-SDR conversion fails are discarded.
- NETINT resolution changes: Fixed buffer overruns, server crashes and green HEVC frames after resolution changes.
- Runtime overlays: Fixed freezes, crashes and incorrect frame releases when overlays are enabled during EVA or NETINT transcoding.
- Fixed a deadlock that could hang an application or VHost stop while a transcoder was shutting down.
- SRT lifecycle: Startup, disconnect and server shutdown are now coordinated. Connections are cleaned up only once, and replacement publishers are protected.
- Frame grabs: Unsuccessful frame grabs are now reported instead of returning blank or stale images.
- RTSP/RTP H.265 ingest: Fixed open-GOP sources (the default for x265 and most HEVC encoders) no longer producing HLS chunks after the first keyframe. CRA and BLA pictures are now detected as keyframes.
- WebRTC: Restarting an application now closes all of its WebRTC peer connections (WebSocket signaling, WHIP and WHEP). WebSocket signaling clients receive a status message before the socket closes, and publishers no longer keep streaming to a stream that the restart removed.
- Fixed WHIP, WHEP and WebSocket signaling hanging for every WebRTC session when WSE runs in a container on EC2 and the instance metadata service never responds. The metadata probe now times out.
- Fixed HLS, CMAF and MPEG-DASH cloud storage stream targets showing **Active** while every upload failed because the storage controller could not be created. They now report **Error**.
- Fixed creating a WebRTC application through the REST API without WebRTC parameters. The application is now created with the default settings.
- Letterboxing and overlays: Letterboxed pictures now keep their colors and contrast, and limited-range SDR overlay levels are corrected on CPU and EVA paths.
- NETINT bit-depth changes: In-stream changes between 8-bit and 10-bit video are now handled by rebuilding or selecting a compatible decoding path when needed.
- NETINT HDR conversion: PQ/HLG sources are now routed correctly when producing 8-bit SDR renditions, while HDR is preserved on Main10 outputs.
- Reconnect cleanup: Fixed an old stream’s shutdown stopping its replacement transcoder or leaving incorrect connection counts.
- GPU frame accuracy: Fixed incorrect buffered-frame repeats on EVA, and repeated or substituted pictures caused by unfinished legacy CUDA copies.
- Color and range: Fixed missing color labels on EVA and NETINT H.264 output, preserved full-range EVA picture levels, and corrected the conversion of full-range sources for affected NETINT encoders.
- MPEG-2 aspect ratio: Fixed the picture shape for sources that specify square pixels.
- WebRTC: Fixed ingest stopping after an ICE restart for publishers whose offer uses `a=sendonly`, including WHIP publishers. The stream stayed published, but the server dropped its media.
- Fixed WebRTC data channels failing silently.
- Fixed audio failing to decrypt in live CMAF and DASH with `cbcs` encryption and key rotation. The `seig` sample group entry now carries each track’s own encryption pattern, matching its `tenc`. With key rotation, the `sgpd` box no longer carries a duplicate 16-byte key ID. This also applies to `cenc`/`cbc1` output, including DASH VOD and DVR.

### Security

- Input validation: Malformed H.264/H.265 headers and invalid lengths are now rejected before they can cause excessive allocations, parser errors or processing loops.
- Fixed a stored cross-site scripting (XSS) vulnerability: stored values on WSE Manager’s stream target view page are now escaped.
- Updated Jackson to version 2.18.11.
- Updated Spring Framework to version 6.2.19 and Spring Boot to version 3.5.16 in WSE Manager to resolve [CVE-2026-41842](https://www.cve.org/CVERecord?id=CVE-2026-41842), [CVE-2026-41845](https://www.cve.org/CVERecord?id=CVE-2026-41845), and [CVE-2026-41850](https://www.cve.org/CVERecord?id=CVE-2026-41850).
- Removed the unused `grpc-netty-shaded` library, which the Google Cloud Storage stream target does not load, to resolve [CVE-2025-55163](https://www.cve.org/CVERecord?id=CVE-2025-55163). Upgrades delete it.
- Docker images now use Ubuntu 24.04 bases: `eclipse-temurin:21-jre-noble` for the engine and `tomcat:11.0-jdk17-temurin-noble` for WSE Manager. This resolves [CVE-2026-84782](https://www.cve.org/CVERecord?id=CVE-2026-84782) in the engine image’s OpenSSL and removes vulnerable Go binaries that the floating Tomcat tag had pulled into the WSE Manager image.

**Upgrade notes**

- WSE 4.12.1 is built with Java 17 and runs on Java 17 or 21.
- The unused `cloudstorage.fullPathURI` setting has been removed. If it is still set, WSE logs a warning.
- Legacy `cloudstorage.string.<name>` keys in `PushPublishMap.txt` are renamed to `cloudstorage.<name>`.
- The WSE Docker images moved to Ubuntu 24.04 bases. If you build your own images on top of them, test your builds against the new bases.

## Known issues

* * *

For a detailed list of currently known issues, see [Known issues with Wowza Streaming Engine](https://www.wowza.com/docs/known-issues-with-wowza-streaming-engine "Known issues with Wowza Streaming Engine").

**Bernd Backhaus**  
Technical Support Engineer  
**WOWZA** | _The **solution** you start with, the **partner** you scale with._

**[Manage your Support cases online](https://portal.wowza.com/account/support)**  
**Bookmark our** **[FAQ page](https://support.wowza.com/hc/en-us)**  
**Bookmark our** **[Status page](https://status.wowza.com/)**

![182x66.9749984741211](https://api-na1.hubspot.com/filemanager/api/v2/files/189182705952/signed-url-redirect?portalId=229276)
