家里的NAS服务器是用CentOS Steam 9,视频太多,就准备把h264和wma的视频全部统一用ffmpeg转码成h265,能省一大半空间!反正NAS平时使用率也很低,正好利用空余时间来转码视频,慢是慢了一点,但不占用我电脑的时间。
安装相关依赖文件
dnf install -y autoconf automake bzip2 bzip2-devel cmake freetype-devel
dnf install -y gcc gcc-c++ git libtool make pkgconfig zlib-devel
# 安装 nasm 包
wget --no-check-certificate https://www.nasm.us/pub/nasm/releasebuilds/2.16/nasm-2.16.tar.gz
tar zxvf nasm-2.16.tar.gz
cd nasm-2.16
make -j4
make install
# 安装 libx264
# 要求将 ffmpeg 配置为 --enable-gpl --enable-libx264
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-shared --enable-static
make && make install
# 安装libx265
# 要求将 ffmpeg 配置为 --enable-gpl --enable-libx265
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd x265_git
cmake
make -j4
make install
# 安装AAC音频编码器
# 要求将 ffmpeg 配置为 --enable-libfdk_aac
# (and --enable-nonfree if you also included --enable-gpl).
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
./autoreconf -fiv
./configure --disable-shared
make -j4
make install
# 安装Opus音频解码器和编码器
# 要求将 ffmpeg 配置为 --enable-libopus
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --disable-shared
make -j4
make install
# 安装libvpx
# VP8/VP9视频编码器和解码器。更多信息和使用实例,请参见VP9视频编码指南。
# 要求将 ffmpeg 配置为 --enable-libvpx.
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make -j4
make install
# 安装libmp3lame
wget https://nchc.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?viasf=1
tar zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --disable-shared
make -j4
make install
# 处理环境变量
在/etc/profile 最后增加
export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/ffmpeg/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
再执行以下命令使修改立即生效
source /etc/profile
# 安装 ffmpeg
下载地址二选一
wget https://ffmpeg.org/releases/ffmpeg-7.1.1.tar.gz
git clone https://github.com/FFmpeg/FFmpeg.git
./configure \
--prefix="/usr/local/ffmpeg" \
--pkg-config-flags="--static" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree
make -j4
make install
安装完成,用ffmpeg转码
ffmpeg -y -i input.wmv -c:v hevc -preset medium -c:a aac \
-threads 4 -loglevel verbose output.mp4
ffmpeg参数
-y 参数用于自动覆盖输出文件,无需提示 -i 指定输入文件
-c:v 指定转码格式,可用 ffmpeg -codecs 查看支持的编码器 -preset 指定视频编码的预设配置
-preset ultrafast :编码速度非常快,但输出视频质量不高
-preset superfast :编码速度非常快,但输出视频质量比ultrafast略微高一些
-preset veryfast :编码速度比较快,输出视频质量较好
-preset faster :编码速度比较快,输出视频质量比veryfast略微差一些
-preset fast :编码速度适中,输出视频质量较好
-preset medium :编码速度适中,输出视频质量非常好,是默认值
-preset slow :编码速度较慢,但输出视频质量比medium更好
-preset slower :编码速度比slow略微慢一些,但输出视频质量更好
-preset veryslow :编码速度最慢,但输出视频质量最好
-c:a 设置声音编解码器,未设置时使用与输入文件相同之编解码器,可用 aac / copy
-threads 4 指定使用两个线程进行转码
-s 1920x1080 设置输出视频的分辨率,未设置时与输入文件相同分辨率
-b:v 2000k 设置视频比特率为2000kbps,未设置时与输入文件相同分辨率
-loglevel verbose
repeat+info 或 info:打印足够的信息来显示进度,但不会过于冗长。这是默认级别,适用于大多数用户。
verbose:比 info 更详细,会打印更多关于编解码器、帧、位率等的内部信息。
debug:提供非常详细的输出,包括内部调试信息,这可能对开发者或高级用户调试问题非常有用。
debug_ts:类似于 debug,但专门关注时间戳问题。
quiet:仅显示错误信息,其他所有信息都不打印。
panic 或 fatal:只打印非常严重的错误信息,导致 ffmpeg 停止执行的错误。
warning(在某些版本的 ffmpeg 中可能不被直接支持作为 loglevel 的值,但可以通过其他方式控制警告的显示):只打印警告和错误信息。
error:只打印错误信息。
none:不打印任何信息,即使发生错误。
output.mp4 是输出文件的名称
文章评论