FFmpeg编译支持AV1编解码器libaom-av1

编译av1的库 libaom-av1

cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
mkdir -p aom_build && \
cd aom_build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
PATH="$HOME/bin:$PATH" make && \
make install

如果出现错误提示 Building from within the aom source tree is not supported. 不能直接在当前 aom源码内进行编译,可以额外新建一个目录重新进行cmake的构建就可以。

参考:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

FFmpeg编译

ffmpeg在configure配置的时候,添加 --enable-libaom 选项支持av1编解码库

--enable-libaom

测试av1

没有添加av1的时候,通过ffprobe分析av1码流,会无法识别出片源的编码格式

$ ffprobe ~/test_av1.webm 
ffprobe version 2.4.3 Copyright (c) 2007-2014 the FFmpeg developers
  built on Nov 14 2014 14:29:31 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --prefix=/home/install --enable-gpl --enable-libx264 --enable-libmp3lame --extra-libs=-ldl
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
[matroska,webm @ 0x34bc020] Unknown entry 0x73C5
    Last message repeated 1 times
[matroska,webm @ 0x34bc020] Unknown/unsupported AVCodecID V_AV1.
[matroska,webm @ 0x34bc020] Could not find codec parameters for stream 0 (Video: none, 1920x1080): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from '/home/xubinbin.5808/media/test_av1.webm':
  Metadata:
    COMPATIBLE_BRANDS: isomiso2avc1mp41
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 512
    ENCODER         : IDMmkvlib0.1
    LANGUAGE        : und
    HANDLER_NAME    : AudioHandler
  Duration: 00:30:40.14, start: 0.000000, bitrate: 1934 kb/s
    Stream #0:0: Video: none, 1920x1080, SAR 1:1 DAR 16:9, 50 fps, 50 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
Unsupported codec with id 0 for input stream 0

添加 libaom-av1 库后

# ./ffprobe  /home/media/test_av1.webm 
ffprobe version n4.2.2 Copyright (c) 2007-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --prefix=../local --env='PKG_CONFIG_PATH=../local/lib/pkgconfig' --pkg-config-flags=--static --extra-ldexeflags=-static --disable-doc --disable-libxcb --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libfreetype --enable-libfdk-aac --enable-libwebp  --enable-libaom --extra-libs='-lpthread -lm -lstdc++' --extra-cflags=-I../local/include --extra-ldflags=-L../local/lib
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[libaom-av1 @ 0x4951b40] 1.0.0-errata1-avif-226-g3cd9eec38
Input #0, matroska,webm, from '/home/media/test_av1.webm':
  Metadata:
    COMPATIBLE_BRANDS: isomiso2avc1mp41
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 512
    ENCODER         : IDMmkvlib0.1
    LANGUAGE        : und
    HANDLER_NAME    : AudioHandler
  Duration: 00:30:40.14, start: 0.000000, bitrate: 1934 kb/s
    Stream #0:0: Video: av1 (Main), yuv420p(tv, bt709), 1920x1080, SAR 1:1 DAR 16:9, 50 fps, 50 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
[libaom-av1 @ 0x4954c00] 1.0.0-errata1-avif-226-g3cd9eec38

av1转码h264测试

./ffmpeg -t 10  -i /home/media/test_av1.webm  -c:v libx264 -c:a libfdk_aac -f mp4 test.mp4 -y
发布了141 篇原创文章 · 获赞 107 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/ternence_hsu/article/details/104157985