当前位置: 首页 > news >正文

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
    

总结

  1. 卸载旧版,安装依赖
  2. 编译安装 FFmpeg 5.1
  3. 配置环境变量
  4. 使用 ffprobe 提取元数据,ffmpeg 提取裸 h264 流
http://www.dtcms.com/a/272366.html

相关文章:

  • TCP 保活(KeepAlive)机制详解
  • 汽车功能安全-软件集成和验证(Software Integration Verification)【验证方法用例导出方法输出物】10
  • Java入门之JDK下载和安装
  • Thrust库介绍与使用
  • 《汇编语言:基于X86处理器》第7章 整数运算(1)
  • 机器人接入AI的发展前景:从开发者视角看技术融合与生态构建
  • JavaScript中的Screen对象:你的屏幕“身份证”
  • 城市规则管理列表实现逻辑
  • 【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
  • 【React】MQTT + useEventBus 实现MQTT长连接以及消息分发
  • 昇腾 k8s vnpu配置
  • 在Linux中,如何使用grep awk sed find?
  • 链式二叉树数据结构(递归)
  • 自动化——bat——批量复制所选的文件
  • 微服务架构的演进:迈向云原生——Java技术栈的实践之路
  • SpringBoot整合腾讯云新一代行为验证码
  • RabbitMQ 幂等性
  • Allegro PCB 手动添加元器件全流程解析
  • expect 安装入门手册
  • 【保姆级教程】基于anji-plus-captcha实现行为验证码(滑动拼图+点选文字),前后端完整代码奉上!
  • 人工智能-基础篇-28-模型上下文协议--MCP请求示例(JSON格式,客户端代码,服务端代码等示例)
  • 开源入侵防御系统——CrowdSec
  • Linux 服务器综合性能测试脚本(优化版)结构化分析
  • 若依框架去掉Redis
  • CORESET 0 and SIB1 Scheduling in a Nutshell
  • 论文阅读笔记:VI-Net: Boosting Category-level 6D Object Pose Estimation
  • RocketMQ安装(Windows环境)
  • 上线节点固定,项目进度紧张,如何合理压缩工期
  • NGINX系统基于PHP部署应用
  • 实验作业1+整理笔记截图