diff options
| author | nyanmisaka <nst799610810@gmail.com> | 2026-05-24 03:31:56 +0800 |
|---|---|---|
| committer | nyanmisaka <nst799610810@gmail.com> | 2026-05-24 03:34:54 +0800 |
| commit | 69b0b63a950a7a076a682fb81d3a0ff32239c1a0 (patch) | |
| tree | 2e8867737496930e33dcaf5ee5117aaf1b615612 /MediaBrowser.Controller/MediaEncoding | |
| parent | 31f4ce93a6c4eef9167bea9afb06d01e5597a64a (diff) | |
Fix inconsistent extradata generated by hevc_vaapi on AMD driver
This change is required for upstream ffmpeg 8+, because its
mp4 muxer will drop in-band PS when using codec tag hvc1.
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding')
| -rw-r--r-- | MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 8f6e36bce4..8688ea4b6c 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -2014,11 +2014,15 @@ namespace MediaBrowser.Controller.MediaEncoding args += keyFrameArg + gopArg; } - // global_header produced by AMD HEVC VA-API encoder causes non-playable fMP4 on iOS + // The in-band Parameter Sets generated by the AMD HEVC VA-API encoder is inconsistent + // with the extradata generated by ffmpeg, causing decoding failures when using hvc1. if (string.Equals(codec, "hevc_vaapi", StringComparison.OrdinalIgnoreCase) && _mediaEncoder.IsVaapiDeviceAmd) { - args += " -flags:v -global_header"; + // Extracting the extradata from the in-band PS to bypass the issue. + // This can be removed once the issue is resolved in libva or Mesa. + // Transcoding is unavoidable here, so using BSF will not conflict with BSF in remuxing. + args += " -flags:v -global_header -bsf:v extract_extradata=remove=0"; } return args; |
