Skip to content

add H266/VVC support #751

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Ciancy28 opened this issue Oct 2, 2024 · 4 comments
Open

add H266/VVC support #751

Ciancy28 opened this issue Oct 2, 2024 · 4 comments

Comments

@Ciancy28
Copy link

Ciancy28 commented Oct 2, 2024

ffmpeg 7.1 introduced h266 support
support for --enable-libvvdec and --enable-libvvenc should be added to the build parameters i think?

@rdp
Copy link
Owner

rdp commented Oct 7, 2024 via email

@mbechard
Copy link
Contributor

mbechard commented Nov 7, 2024

I spent some time trying to add a build_libvvenc() to the script. Their CMake config seems to ignore CMAKE_FIND_ROOT_PATH and CMAKE_FILE_ROOT_PATH_MODE_LIBRARY, which I think is needed to find the include that is added. (compilation complains about mutex not being part of std::)
Not sure if there is an alternative workflow already in the script to account for this

@rdp
Copy link
Owner

rdp commented Dec 5, 2024 via email

@tjayz
Copy link

tjayz commented Feb 25, 2025

build_libvvenc() {
  do_git_checkout https://github.com/fraunhoferhhi/vvenc.git libvvenc_git 
  cd libvvenc_git 
    do_cmake "-S . -B build/release-static -DCMAKE_INSTALL_PREFIX=$mingw_w64_x86_64_prefix -DCMAKE_BUILD_TYPE=Release -DVVENC_ENABLE_LINK_TIME_OPT=OFF -DVVENC_INSTALL_FULLFEATURE_APP=ON -GNinja" && cd build/release-static && ninja -j 16 && ninja install
  cd ../../..
}

build_libvvdec() {
  do_git_checkout https://github.com/fraunhoferhhi/vvdec.git libvvdec_git 
  cd libvvdec_git  
    do_cmake "-S . -B build/release-static -DCMAKE_INSTALL_PREFIX=$mingw_w64_x86_64_prefix -DCMAKE_BUILD_TYPE=Release -DVVDEC_ENABLE_LINK_TIME_OPT=OFF -DVVDEC_INSTALL_VVDECAPP=ON -GNinja" && cd build/release-static && ninja -j 16 && ninja install 
  cd ../../..
}

.pc files something like this, no sed required if using mingw v12

Libs: -L${libdir} -lvvdec
Libs.private: -lstdc++ -lmingw32 -lgcc -lmingwex -lkernel32 -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lmingwex -lkernel32
Cflags: -I${includedir}

vvdec needs that and patch will fail on many versions, try release/7.1 for success for vvenc as well

config_options+=" --enable-libvvdec" && apply_patch "https://github.com/raw/wiki/fraunhoferhhi/vvdec/data/patch/v6-0001-avcodec-add-external-dec-libvvdec-for-H266-VVC.patch" -p1

Might require v10+ of mingw, I used v12

tjayz added a commit to tjayz/ffmpeg-windows-build-helpers that referenced this issue Feb 27, 2025
Updated to latest Zeranoe script
Updated to latest gcc/binutils/mingw versions rdp#752
Updated most libs
Added vvenc/vvdec rdp#751 for release/7.1
Added libvpl and removed libmfx rdp#743 rdp#729
Added AudiotoolboxWrapper to enable-audiotoolbox for non OS x rdp#760 
Added Openmpt and Flac
Added work around for Tensorflow gpu/cpu lib for windows (requires .dll)
Added Vulkan commit 02ca346
Added commits to simplify if statements a92e458 9b067d5 and svtav1 patch f131dc0
Added essential patches
Added optional build.sh to bypass user selection prompts
tjayz added a commit to tjayz/ffmpeg-windows-build-helpers that referenced this issue Mar 11, 2025
Updated to latest Zeranoe script https://github.com/Zeranoe/mingw-w64-build
Updated to latest gcc/binutils/mingw versions rdp#752
Updated most libs
Added vvenc/vvdec rdp#751 for release/7.1+
Added libvpl  rdp#743 rdp#729
Added AudiotoolboxWrapper to enable-audiotoolbox for non OS x rdp#760 
Added Openmpt Flac brotli zstd lz4 giflib archive psl nghttp2 curl
Added work around for Tensorflow gpu/cpu lib for windows (requires tensorflow.dll)
Added essential patches (credit to mabs for many)
Added optional build.sh to bypass user selection prompts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants