ffmpeg-stable-autobuild
ffmpeg-stable-autobuild copied to clipboard
There are serious performance issues with libx265 in version 7.0.
When encoding a 4K video, it was found that the encoding speed was only 9 FPS, which is abnormal. Switching back to version 6.1.1 restored normal performance, with a speed of 25 FPS. Comparing the encoder information, it seems that the problem lies here:
ffmpeg-stable-autobuild 7.0 2024-04-19 x265 [info]: HEVC encoder version 3.6+1-2f95fe7c8 x265 [info]: build info [Windows][GCC 10.2.0][64 bit][noasm] 10bit x265 [info]: using cpu capabilities: none!
ffmpeg-stable-autobuild 6.1.1 2024-02-28 x265 [info]: HEVC encoder version 3.5+1-ce882936d x265 [info]: build info [Windows][GCC 10.2.0][64 bit] 10bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
It seems that libx265 in version 7.0 has disabled asm optimization and CPU instruction set optimization.
Additionally, both the official versions 6.1 and 7.0 perform normally."
2024-04-19T09:41:58.8295092Z Downloading (via git clone) x265 from https://bitbucket.org/multicoreware/x265_git
2024-04-19T09:41:58.8319979Z Cloning into 'x265.tmp'...
2024-04-19T09:42:28.3181769Z done git cloning to x265
2024-04-19T09:42:28.3200779Z doing git checkout origin/stable
2024-04-19T09:42:28.3627786Z HEAD is now at 2f95fe7c8 Merge branch 'Release_3.6' into stable
2024-04-19T09:42:28.3668739Z got upstream changes, forcing re-configure. Doing git clean
2024-04-19T09:42:28.4487743Z HEAD is now at 2f95fe7c8 Merge branch 'Release_3.6' into stable
2024-04-19T09:42:28.4621988Z doing cmake in /home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/win64/x265/12bit with PATH=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin:$PATH with extra_args=-DENABLE_SHARED=0 -DENABLE_CLI=0 -DHIGH_BIT_DEPTH=1 -DMAIN12=1 -DEXPORT_C_API=0 like this:
2024-04-19T09:42:28.4630912Z doing cmake -G"Unix Makefiles" ../source -DENABLE_STATIC_RUNTIME=1 -DBUILD_SHARED_LIBS=0 -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_FIND_ROOT_PATH=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_RANLIB=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-ranlib -DCMAKE_C_COMPILER=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-g++ -DCMAKE_RC_COMPILER=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-windres -DCMAKE_INSTALL_PREFIX=/home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 -DENABLE_SHARED=0 -DENABLE_CLI=0 -DHIGH_BIT_DEPTH=1 -DMAIN12=1 -DEXPORT_C_API=0
2024-04-19T09:42:28.4665146Z -- cmake version 3.29.2
2024-04-19T09:42:28.4665990Z CMake Deprecation Warning at CMakeLists.txt:10 (cmake_policy):
2024-04-19T09:42:28.4666810Z The OLD behavior for policy CMP0025 will be removed from a future version
2024-04-19T09:42:28.4667391Z of CMake.
2024-04-19T09:42:28.4667549Z
2024-04-19T09:42:28.4667925Z The cmake-policies(7) manual explains that the OLD behaviors of all
2024-04-19T09:42:28.4668683Z policies are deprecated and that a policy should be set to OLD only under
2024-04-19T09:42:28.4669533Z specific short-term circumstances. Projects should be ported to the NEW
2024-04-19T09:42:28.4670201Z behavior and not rely on setting a policy to OLD.
2024-04-19T09:42:28.4670552Z
2024-04-19T09:42:28.4670557Z
2024-04-19T09:42:28.4670820Z CMake Deprecation Warning at CMakeLists.txt:16 (cmake_policy):
2024-04-19T09:42:28.4671733Z The OLD behavior for policy CMP0054 will be removed from a future version
2024-04-19T09:42:28.4672651Z of CMake.
2024-04-19T09:42:28.4672854Z
2024-04-19T09:42:28.4673241Z The cmake-policies(7) manual explains that the OLD behaviors of all
2024-04-19T09:42:28.4673996Z policies are deprecated and that a policy should be set to OLD only under
2024-04-19T09:42:28.4674836Z specific short-term circumstances. Projects should be ported to the NEW
2024-04-19T09:42:28.4675357Z behavior and not rely on setting a policy to OLD.
2024-04-19T09:42:28.4675630Z
2024-04-19T09:42:28.4675640Z
2024-04-19T09:42:28.4675797Z CMake Warning (dev) at CMakeLists.txt:19 (project):
2024-04-19T09:42:28.4676384Z cmake_minimum_required() should be called prior to this top-level project()
2024-04-19T09:42:28.4677206Z call. Please see the cmake-commands(7) manual for usage documentation of
2024-04-19T09:42:28.4677665Z both commands.
2024-04-19T09:42:28.4678095Z This warning is for project developers. Use -Wno-dev to suppress it.
2024-04-19T09:42:28.4678451Z
2024-04-19T09:42:28.5130587Z -- The C compiler identification is GNU 10.2.0
2024-04-19T09:42:28.5599176Z -- The CXX compiler identification is GNU 10.2.0
2024-04-19T09:42:28.5760602Z -- Detecting C compiler ABI info
2024-04-19T09:42:28.6340969Z -- Detecting C compiler ABI info - done
2024-04-19T09:42:28.6554102Z -- Check for working C compiler: /home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-gcc - skipped
2024-04-19T09:42:28.6556817Z -- Detecting C compile features
2024-04-19T09:42:28.6562091Z -- Detecting C compile features - done
2024-04-19T09:42:28.6627990Z -- Detecting CXX compiler ABI info
2024-04-19T09:42:28.7204509Z -- Detecting CXX compiler ABI info - done
2024-04-19T09:42:28.7422226Z -- Check for working CXX compiler: /home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-g++ - skipped
2024-04-19T09:42:28.7425039Z -- Detecting CXX compile features
2024-04-19T09:42:28.7431986Z -- Detecting CXX compile features - done
2024-04-19T09:42:28.7444377Z CMake Deprecation Warning at CMakeLists.txt:20 (cmake_minimum_required):
2024-04-19T09:42:28.7445900Z Compatibility with CMake < 3.5 will be removed from a future version of
2024-04-19T09:42:28.7449154Z CMake.
2024-04-19T09:42:28.7449411Z
2024-04-19T09:42:28.7454111Z Update the VERSION argument <min> value or use a ...<max> suffix to tell
2024-04-19T09:42:28.7455279Z CMake that the project does not need compatibility with older versions.
2024-04-19T09:42:28.7455979Z
2024-04-19T09:42:28.7455987Z
2024-04-19T09:42:28.7466159Z -- CMAKE_SYSTEM_PROCESSOR value `` is unknown
2024-04-19T09:42:28.7467360Z -- Please add this value near /home/runner/work/ffmpeg-stable-autobuild/ffmpeg-stable-autobuild/sandbox/win64/x265/source/CMakeLists.txt:93
https://github.com/rdp/ffmpeg-windows-build-helpers/issues/250 https://github.com/rdp/ffmpeg-windows-build-helpers/issues/599 https://github.com/rdp/ffmpeg-windows-build-helpers/issues/681
https://github.com/rdp/ffmpeg-windows-build-helpers/issues/736
Additionally, both the official versions 6.1 and 7.0 perform normally.
Apparently BtbN/FFmpeg-Builds still uses x265 version 3.5 while rdp/ffmpeg-windows-build-helpers now uses x265 version 3.6
@gartour2 Can you try this specific FFmpeg release to check if the problem has been fixed?
@gartour2 Can you try this specific FFmpeg release to check if the problem has been fixed?
I have tested it, and now it works properly.