[PR #4432] [MERGED] Add initial support for HEVC over FMP4-HLS #10074

Closed
opened 2026-02-07 06:13:38 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/4432
Author: @nyanmisaka
Created: 11/7/2020
Status: Merged
Merged: 11/20/2020
Merged by: @cvium

Base: masterHead: fmp4-hls


📝 Commits (10+)

  • 8596574 add initial support for HEVC over FMP4-HLS
  • 1abd3d1 fix the fmp4 header file generate on linux
  • 5048719 minor changes per suggestions
  • babb298 fix ci
  • 0b01acb Apply suggestions from code review
  • 57e5b59 adjust bitrate limit for HLS audio codecs
  • 6987cb8 fix ci
  • 11c74cb fix for no audio stream video
  • 5bd0c2b add an option to disable hevc encoding
  • d91a099 allow transcoding 8ch(7.1 layout) in aac

📊 Changes

15 files changed (+1183 additions, -358 deletions)

View changed files

📝 Jellyfin.Api/Controllers/DynamicHlsController.cs (+145 -88)
📝 Jellyfin.Api/Controllers/UniversalAudioController.cs (+5 -2)
📝 Jellyfin.Api/Controllers/VideoHlsController.cs (+131 -40)
📝 Jellyfin.Api/Helpers/DynamicHlsHelper.cs (+180 -18)
📝 Jellyfin.Api/Helpers/HlsCodecStringHelpers.cs (+68 -24)
📝 Jellyfin.Api/Helpers/HlsHelpers.cs (+50 -7)
📝 Jellyfin.Api/Helpers/StreamingHelpers.cs (+38 -15)
📝 Jellyfin.Api/Helpers/TranscodingJobHelper.cs (+2 -1)
📝 MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs (+378 -147)
📝 MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs (+10 -0)
📝 MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs (+103 -2)
📝 MediaBrowser.Model/Configuration/EncodingOptions.cs (+3 -0)
📝 MediaBrowser.Model/Dlna/ResolutionNormalizer.cs (+5 -5)
📝 MediaBrowser.Model/Dlna/StreamBuilder.cs (+64 -8)
📝 MediaBrowser.Model/Dlna/StreamInfo.cs (+1 -1)

📄 Description

Web changes
https://github.com/jellyfin/jellyfin-web/pull/2064

Changes

  • Initial support for streaming FMP4-HLS.
  • Direct streaming over FMP4 supports HEVC, H264, AAC, MP3, AC3, EAC3, FLAC, ALAC.
  • HEVC Main 10 SDR direct streaming on supported devices.
  • HEVC Main 10 HDR/HLG direct streaming on supported devices. (e.g. Apple A11 chip devices with iOS 14.1+ installed)
  • Transcode and streaming in HEVC format. Compared with H264, the same quality can be achieved at a lower bandwidth.
  • HWA HEVC encoding in NVENC, QSV, AMF and VAAPI.
  • Enhance audio bitrate probing.
  • Add an option to disable HEVC encoding.

AF65EEE7-6FCD-463F-8EDD-21D3ACF45234
9CE4C900-5B8F-498D-A76F-643B156FBA06
C37323D4-A838-4BA7-93F6-DF378547040B


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/4432 **Author:** [@nyanmisaka](https://github.com/nyanmisaka) **Created:** 11/7/2020 **Status:** ✅ Merged **Merged:** 11/20/2020 **Merged by:** [@cvium](https://github.com/cvium) **Base:** `master` ← **Head:** `fmp4-hls` --- ### 📝 Commits (10+) - [`8596574`](https://github.com/jellyfin/jellyfin/commit/85965741f57e709133fbaf5ba59ed45bbd3b5d26) add initial support for HEVC over FMP4-HLS - [`1abd3d1`](https://github.com/jellyfin/jellyfin/commit/1abd3d1bd8049e0fad557b95ee7d76916883b539) fix the fmp4 header file generate on linux - [`5048719`](https://github.com/jellyfin/jellyfin/commit/5048719a64ce914f859e058c1a7b03258255836e) minor changes per suggestions - [`babb298`](https://github.com/jellyfin/jellyfin/commit/babb298b90f3c8d8025788d9c6c552fa92c09571) fix ci - [`0b01acb`](https://github.com/jellyfin/jellyfin/commit/0b01acbe9172872f2685b115c219efd98619b4bc) Apply suggestions from code review - [`57e5b59`](https://github.com/jellyfin/jellyfin/commit/57e5b59b93272bbbafeb1b57bdacc862c48f0996) adjust bitrate limit for HLS audio codecs - [`6987cb8`](https://github.com/jellyfin/jellyfin/commit/6987cb83570a6a822260691f009f4b3762d98942) fix ci - [`11c74cb`](https://github.com/jellyfin/jellyfin/commit/11c74cb65cd936f0fece57357beb7a27741edc24) fix for no audio stream video - [`5bd0c2b`](https://github.com/jellyfin/jellyfin/commit/5bd0c2b69d0f4fccd09866a67c741742710372dc) add an option to disable hevc encoding - [`d91a099`](https://github.com/jellyfin/jellyfin/commit/d91a099c9e04cb39d1b8e387dba0b44dde64342d) allow transcoding 8ch(7.1 layout) in aac ### 📊 Changes **15 files changed** (+1183 additions, -358 deletions) <details> <summary>View changed files</summary> 📝 `Jellyfin.Api/Controllers/DynamicHlsController.cs` (+145 -88) 📝 `Jellyfin.Api/Controllers/UniversalAudioController.cs` (+5 -2) 📝 `Jellyfin.Api/Controllers/VideoHlsController.cs` (+131 -40) 📝 `Jellyfin.Api/Helpers/DynamicHlsHelper.cs` (+180 -18) 📝 `Jellyfin.Api/Helpers/HlsCodecStringHelpers.cs` (+68 -24) 📝 `Jellyfin.Api/Helpers/HlsHelpers.cs` (+50 -7) 📝 `Jellyfin.Api/Helpers/StreamingHelpers.cs` (+38 -15) 📝 `Jellyfin.Api/Helpers/TranscodingJobHelper.cs` (+2 -1) 📝 `MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs` (+378 -147) 📝 `MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs` (+10 -0) 📝 `MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs` (+103 -2) 📝 `MediaBrowser.Model/Configuration/EncodingOptions.cs` (+3 -0) 📝 `MediaBrowser.Model/Dlna/ResolutionNormalizer.cs` (+5 -5) 📝 `MediaBrowser.Model/Dlna/StreamBuilder.cs` (+64 -8) 📝 `MediaBrowser.Model/Dlna/StreamInfo.cs` (+1 -1) </details> ### 📄 Description **Web changes** https://github.com/jellyfin/jellyfin-web/pull/2064 **Changes** - Initial support for streaming FMP4-HLS. - Direct streaming over FMP4 supports HEVC, H264, AAC, MP3, AC3, EAC3, FLAC, ALAC. - HEVC Main 10 SDR direct streaming on supported devices. - HEVC Main 10 HDR/HLG direct streaming on supported devices. (e.g. Apple A11 chip devices with iOS 14.1+ installed) - Transcode and streaming in HEVC format. Compared with H264, the same quality can be achieved at a lower bandwidth. - HWA HEVC encoding in NVENC, QSV, AMF and VAAPI. - Enhance audio bitrate probing. - Add an option to disable HEVC encoding. ![AF65EEE7-6FCD-463F-8EDD-21D3ACF45234](https://user-images.githubusercontent.com/14953024/98447778-7fd35500-2162-11eb-88d0-a2efeda0796f.jpeg) ![9CE4C900-5B8F-498D-A76F-643B156FBA06](https://user-images.githubusercontent.com/14953024/98447777-7e099180-2162-11eb-8565-5758f5d28994.jpeg) ![C37323D4-A838-4BA7-93F6-DF378547040B](https://user-images.githubusercontent.com/14953024/98447780-81048200-2162-11eb-9277-f2ad8dfd19ff.jpeg) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 06:13:38 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#10074