FFmpeg Builds for yt-dlp

nihil-admirari 58bb1b9b88 7.1 release 1 month ago
.github 58bb1b9b88 7.1 release 3 weeks ago
addins d4d9acc8d5 Add 7.1 addin 2 months ago
images f23f943fb3 Remove stray reference to upstream 3 weeks ago
patches b6a8a983e9 7.0 release 3 weeks ago
scripts.d 3ca3ec4102 Disable unused parts of vvenc 3 weeks ago
util 8ccb048dc3 Update repository path and readme 3 weeks ago
variants 8efdbd5a6b Add initial support for winarm64 8 months ago
.gitignore 8ccb048dc3 Update repository path and readme 3 weeks ago
LICENSE b0600d251c Update license year 3 years ago
README.md 31bedf75ab Use the correct Vulkan NULL type 3 weeks ago
build.sh be2ea3e082 FFmpeg master no longer needs WebVTT fix 3 weeks ago
download.sh e7b51ec84e Simplify rootless-test 2 months ago
generate.sh 40511a0e8a Always use COPY --link 1 month ago
makeimage.sh bca241b76e Only re-build step image if not in output cache yet 8 months ago

README.md

FFmpeg Static Auto-Builds

This repository provides static Windows (x86 and x86_64) and Linux (x86_64, arm64) Builds of FFmpeg master and latest release branch with some patches necessary for smooth integration with yt-dlp

Note: The builds provided are only meant to be used with yt-dlp and any unrelated issues/patches will be rejected

Downloads

Linux x64 GPL master Linux ARM64 GPL master Windows x64 GPL master Windows x86 GPL master Windows ARM64 GPL master Other variants Other versions


Patches Welcome

Known issues for which patches are welcome:

1. More Builds

There are currently no MacOS builds. If you know how to add them to the workflow, make a PR

2. Removing a segment before the first subtitle

yt-dlp#2753, FFmpeg#9646

Patches Applied

These patches have been applied to the builds:

1. Decoding non-standard HEVC in FLV containers

HEVC inside FLV has been standardized by @Veovera, implemented by @T-bagwell and merged to FFmpeg master in aa83654 and ac5cc66.

Chinese sites seem to continue using an old non-standard way to deliver HEVC in FLV containers. These builds of FFmpeg support the decoding of such files.

Releases older than 6.1 also supported the encoding of such non-standard files. The implementation was assembled from patches by @xiaoxial, @runner365, and Matthieu Patou. See this comment for details.

Fixes yt-dlp#5874, FFmpeg#6389.

Historical Patches

Patches that were used in the past but are no longer needed as of 7.0:

1. Fix AAC HLS streams being truncated mid stream

by @shirt and @jeeb, merged in c205778. Fixes yt-dlp#618, yt-dlp#998, yt-dlp#1039, FFmpeg#9433

2. Fix for YouTube's VP9 encodes with non-monotonous DTS

by @danny-wu, merged in 68595b4 Fixes yt-dlp#871, youtube-dl#28042, FFmpeg#9086

3. Long path support for Windows

by @nihil-admirari. Fixes yt-dlp#1995, yt-dlp#1273, FFmpeg#8885.

This patch has been substantially reworked by FFmpeg devs @softworkz and @mstorsjo, and merged in a series of commits: 3fb9244 4cdc14a 6076dbc f579a1d 6b32ad5 c5aba39 bc8f1bb 5d5a014 3b3c567 fee765c cc5844d dfa062e 13350e8 c381f54 69364a0

4. Chapter embedding regression

by @bashonly. Fixes FFmpeg#10482

Fixed upstream by @mkver; merged in 02064ba.

5. WebVTT decoding fix

by @tpikonen. Fixes yt-dlp#4127, FFmpeg#8684

Fixed upstream by @ztion; merged in 51d303e.

2. Use the correct Vulkan NULL type

by @nihil-admirari. Makes it possible to build the current master for Win32 targets.

Fixed upstream by @ceyusa; merged in 2bcc124.

Credits


PS: The commits are unsigned because of the periodic automatic rebase