Linux ffmpeg+vmaf 环境配置

简介:

ffmpeg工具主要用于音视频编解码,ffmpeg的主要工作流程如下所示:

  • 读取输入源
  • 进行音视频的解封装
  • 解码每一帧音视频数据
  • 编码每一帧音视频数据
  • 进行音视频的重写封装
  • 输出到目标

读取文件-->解封装-->解码-->转换参数-->新编码-->封装-->写入文件

如上述流程

  • ffmpeg首先读取输入源,然后通过Demuxer将音视频包进行解封装,这个动作通过调用libavformat中的接口即可实现;
  • 接下来通过Decoder进行解码,将音视频通过Decoder解包成为YUV或者PCM这样的数据,Decoder通过libavcodec中的接口即可实现;
  • 然后通过Encoder将对应的数据进行编码,编码可以通过libavcodec中的接口来实现;
  • 接下来将编码后的音视频数据包通过Muxer进行封装,Muxer封装通过libavformat中的接口即可实现,输出成为输出流;

ffmpeg + vmaf 环境配置

1、安装依赖包,将下述代码保存成test_install.sh脚本,赋予权限chmod 777 test_install.sh,然后执行./test_install.sh,等待依赖包安装完成,如果有安装失败的依赖包,可先忽略

#!/bin/bash

errArra=()
# 安装libva编译环境包
packageArray=(autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx libgl1-mesa-dev automake-1.15 x11vnc)
a_len=${#packageArray[@]}
for ((i=0; i<$a_len; ++i))
do
	echo "****************Start installing  ${packageArray[i]}************"
	apt-get install ${packageArray[i]} -y
	if [[ "$?" -ne "0" ]]; then
		echo "Failed to install ${packageArray[i]}"
		errArray+=${packageArray[i]}
		errArray+=" "
	fi	
done


# 安装ffmpeg编译环境包
function apt_install_ffmpeg_package()
{
packageArray=(libx265-dev  libva-drm2  libx11-dev libvpx-dev libopus-dev  libx264-dev libsdl2-dev gnutls-dev  ladspa-sdk  libass-dev libbs2b-dev caca-utils libdc1394-22-dev  libgme-dev
 libgsm1-dev libopenjp2-7-dev libopenjp2-tools  libopenmpt-dev librsvg2-dev libsnappy-dev libssh-dev libtheora-dev libspeex-dev libtheora-dev libtwolame-dev  libwavpack-dev libwebp-dev  libxvidcore-dev
libzmq3-dev libopenalpr2 libcdio-dev libfdk-aac-dev libbluray-dev libxml2-dev libmp3lame-dev  libsoxr-dev libvorbis-dev nasm yasm libvdpau-dev)
 
a_len=${#packageArray[@]}
for ((i=0; i<$a_len; ++i))
do
	echo "***************Start installing  ${packageArray[i]}*************"
	apt-get install ${packageArray[i]} -y
	if [[ "$?" -ne "0" ]]; then
		echo "Failed to install ${packageArray[i]}"
		errArray+=${packageArray[i]}
		errArray+=" "
	fi	
done
}

apt_install_ffmpeg_package

# 输出安装错误的软件包
for ((i=0; i<${#errArray[@]}; ++i))
do
	echo "***************Failed to install  ${errArray[i]}*************"
done

2、首先安装Meson和Ninja:

sudo apt-get install ninja-build meson make

3、获取最新的vmaf:

地址:Releases · Netflix/vmaf · GitHub

由于使用的是ubuntu,我就下载了这个:

然后解压,到当前目录:

tar xvzf vmaf-2.3.1.tar.gz

4、安装libvmaf,以下逐条执行:

cd vmaf-2.3.1/libvmaf
meson build --buildtype release
ninja -vC build
ninja -vC build install

5、安装ffmpeg:

地址:Download FFmpeg

6、构建配置,编译ffmpeg:

./configure --enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libvmaf --enable-version3
sudo make
sudo make install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

可按照实际需求,添加配置(--enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libvmaf --enable-version3 这些就是配置)

7、注意事项

如果走完了整个流程,输入'ffmpeg -version',还是显示'不存在',那就是环境变量没有正确配置,可以采取以下验证方式:

which ffmpeg
/usr/local/bin/ffmpeg -version

如果可以正确运行,说明ffmpeg在'/usr/local/bin'路径下,那就把该路径添加到环境变量中,即可:

echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrc

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值