Ubuntu 20.04 下**安装 FFmpeg 5.1
下面是在 Ubuntu 20.04 下安装 FFmpeg 5.1 的完整步骤,特别针对你想用于读取 MP4 文件中的 H.264 视频数据与编码元数据的场景。包括添加官方源或源码编译、自定义常用依赖、检测安装,以及如何调用 FFmpeg 读取元数据信息的实际用法。
一、先卸载系统旧版 FFmpeg(如已装)
sudo apt-get remove ffmpeg
sudo apt-get autoremove
二、安装依赖库
FFmpeg 编译和功能常用的依赖:
sudo apt-get update
sudo apt-get install \autoconf automake build-essential cmake git-core libtool \pkg-config texinfo zlib1g-dev libssl-dev \libx264-dev libx265-dev libnuma-dev libfdk-aac-dev \libmp3lame-dev libopus-dev libvpx-dev libass-dev \libfreetype6-dev libsdl2-dev yasm
这些确保 h264 等常用编解码可用。
三、下载安装 FFmpeg 5.1 源码
cd ~
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout n5.1 # 切换到5.1版本分支
四、配置和编译 FFmpeg
./configure --prefix="$HOME/ffmpeg-5.1-build" \--enable-gpl --enable-nonfree --enable-libx264 --enable-libx265 \--enable-libfdk-aac --enable-libmp3lame --enable-libopus \--enable-libvpx --enable-libass --enable-libfreetype \--enable-shared
make -j$(nproc)
make install
说明:
--enable-gpl --enable-nonfree
让 FFmpeg 支持 GPL/LGPL 和非自由库。--enable-libx264
等是为 h264 编解码准备。--prefix
指定安装目录,不会覆盖系统 FFmpeg。
五、配置环境变量
echo 'export PATH="$HOME/ffmpeg-5.1-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
确认新版本已安装:
ffmpeg -version # 应输出5.1.X
六、使用 FFmpeg 获取 MP4 的 H.264 数据和元数据
1. 获取文件元数据(编码信息等):
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,codec_type,codec_tag_string,profile,width,height,r_frame_rate,avg_frame_rate -of default=noprint_wrappers=1 demo.mp4
返回类似于:
codec_name=h264
codec_type=video
profile=High
width=1920
height=1080
r_frame_rate=25/1
avg_frame_rate=25/1
2. 提取裸流(h264码流):
ffmpeg -i demo.mp4 -an -c:v copy -bsf:v h264_mp4toannexb output.h264
-an
:去音频-c:v copy
:不转码,直接拷贝-bsf:v h264_mp4toannexb
:把 MP4 的 H.264 样本转成裸流 annexb 格式
七、其它建议
-
推荐源码安装,因 Ubuntu 官方仓库一般没有 5.1 这么新。
-
可用
ffprobe
直接提取所有元数据,支持 json 输出(方便程序解析)ffprobe -v quiet -print_format json -show_streams demo.mp4
总结
- 卸载旧版,安装依赖
- 编译安装 FFmpeg 5.1
- 配置环境变量
- 使用
ffprobe
提取元数据,ffmpeg
提取裸 h264 流