2 Star 2 Fork 2

南海 / 交叉编译FFmpeg-avs2-avs3_可下载EXE Cross-compiling ffmpeg with AVS2 and AVS3 enabled

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

ffmpeg启用国标AVS2及AVS3编码

下载Windows_X64运行文件:

(https://gitee.com/zhengtianbo/FFmpeg-avs2-avs3/releases)

AVS2与libx265转码mp4对比测试


前提:相同视频,现有源码,ffmpeg缺省参数,即:
 ffmpeg -i x.mp4 -vcodec avs2 x_avs2.mkv
 ffmpeg -i x.mp4 -vcodec libx265 x_x265.mkv

速度:本人机器上AVS2远超libx265,是其近3.5倍。
文件:AVS2比libx265至少小近10%。
画质:主观评价两者画质相近。

参数speed_level调整画质:

ffmpeg -i 篮球测试视频一.mp4 -vcodec avs2 -speed_level 4 -acodec copy 篮球测试视频一_AVS2.mkv

speed_level越大画质越高但编码越慢.

自建ffmpeg步骤:

若已有ubuntu Linux,跳过前两步。
1. 在Windows 10启用Linux子系统,从微软商店搜索并安装ubuntu。
2. 在Windows运行ubuntu,设置Linux超级用户及口令, 再更新系统文件
    $ sudo apt list --upgradable
    $ sudo apt upgrade
    $ sudo apt update
  1. 复制编译批文件到本地, 设置编译选项。

     $ git clone https://gitee.com/zhengtianbo/ffmpeg-windows-build-helpers-AVS2.git
    
     可选修改cross_compile_ffmpeg.sh选项, 如:
            build_ffmpeg_shared = "y"        #建DLL版.
  1. 编译ffmpeg。

     $ sudo bash -c 'echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop'
     $ cd ffmpeg-windows-build-helpers-AVS2
     $ ./cross_compile_ffmpeg_u.sh

建议选3即Win64 (64-bit only).
若缺文件如编译工具,先按提示安装所需文件,如sudo apt update等等,再试。
注意:可能需重复多次运行sudo apt update,cross_compile_ffmpeg_u.sh, 留意出错提示.

若编译libsndfile出错,先试如下命令:

$ sudo dpkg -r --force-depends "libgc1c2" # remove old libgc
$ git clone git://github.com/ivmai/bdwgc.git
$ cd bdwgc
$  ./autogen.sh
$ ./configure --prefix=/usr && make -j # its default is the wrong directory? huh?
$ sudo make install

成功编译后, 若不想下次运行cross_compile_ffmpeg_u.sh浪费时间检查所有支持库, 可设置跳过它们:

build_dependencies = "n"

开启国标AVS2及AVS3编码

AVS2编解码及AVS3解码: 新版ffmpeg内含AVS2编解码及AVS3解码, 编译时只需开启--enable-libxavs2/--enable-libdavs2/--enable-libuavs3d即可.
AVS3编码: AVS3编码需修改6个文件, 详见ffmpeg-V5.X-Avs23-r1-a2df66524.patch.txt与changedfilelist.zip, changedlist.txt.
cross_compile_ffmpeg.sh中引用的ffmpeg已开启AVS3编码的:
            ffmpeg_git_checkout="https://github.com/xatabhk/FFmpeg-avs2-avs3"

若想改为原始FFmpeg仓库https://github.com/FFmpeg/FFmpeg.git, 则需先手工添加AVS2/AVS3支持, 改动之处可参照以上3文件.

开启AVS3 10bit, 需修改uavs3e中com_api.h及uavs3d中com_def.h: #define BIT_DEPTH 10.

修正XAVS2编码撕裂故障

故障描述:https://gitee.com/pkuvcl/xavs2/issues/I1NWSU 补救步骤: 1. 先交叉编译XAVS2为DLL,迫使ffmpeg调用libxavsn-nn.dll(当前为libxavs2-13.dll)。 如下加入--enable-shared选项:
        build_libxavs2() {
              do_git_checkout https://github.com/pkuvcl/xavs2.git
              cd xavs2_git/build/linux
              do_configure "--cross-prefix=$cross_prefix --host=$host_target --prefix=$mingw_w64_x86_64_prefix --enable-pic --enable-shared"
              do_make_and_make_install
              cd ../../..
        }
  1. 用微软VC++编译XAVS2为DLL,替换上步生成的libxavsn-nn.dll. 下载nasm.exe到ffmpeg-windows-build-helpers\sandbox\win64\xavs2_git\build\vs2013, 再用Visual Studio打开该目录中的xavs2.sln生成libxavsn-nn.dll后, 将其复制到ffmpeg.exe所在目录。

uavs3e来源

cross_compile_ffmpeg.sh中uavs3e来源设置:
do_git_checkout https://github.com/xatabhk/uavs3e.git

若改为指向原始uavs3e仓库https://github.com/uavs3/uavs3e.git, 则需手工修正函数calculate_histogram重名问题后才能正常链接ffmpeg, 如可将uavs3e中calculate_histogram改为uavs3e_calculate_histogram.

空文件

简介

ffmpeg启用国标AVS/AVS2/AVS3 展开 收起
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/zhengtianbo/ffmpeg-windows-build-helpers-AVS2.git
git@gitee.com:zhengtianbo/ffmpeg-windows-build-helpers-AVS2.git
zhengtianbo
ffmpeg-windows-build-helpers-AVS2
交叉编译FFmpeg-avs2-avs3_可下载EXE Cross-compiling ffmpeg with AVS2 and AVS3 enabled
master

搜索帮助