FFmpeg 的介绍与使用

2023-11-06

FFmpeg:Fast Forward Moving Picture Experts Group

FFmpeg 命令行工具的使用

FFmpeg 官网 可以下载对应平台的可执行程序包,比如 Windows 平台的下载地址是:https://ffmpeg.zeranoe.com/builds/,下载解压后就能在 bin 文件夹下能看到三个可执行程序:ffmpeg、ffplay、ffprobe,配置好环境变量后即可使用。

ffprobe

ffprobe 是用于查看媒体文件头信息的工具,常用命令有:

ffprobe INPUT
ffprobe -show_format INPUT
ffprobe -show_streams INPUT
ffprobe -show_frames INPUT
ffprobe -show_packets INPUT
...

show_format 用于查看文件格式、时长、码率等信息,较为简略;

show_streams 用于查看视频流、音频流的信息,包括编码器、帧率、采样率、宽高、像素格式、采样格式、码率、时长、总帧率等等,较为详细,是最常用的一个功能;

show_frames、show_packets 用于查看每一帧(解码前/解码后)的信息,可以配合 select_streams 使用;

关于 ffprobe 的更多命令可以查看官网文档:ffprobe Documentation

ffplay

ffplay 是用于播放媒体文件的工具,常用命令有:

ffplay INPUT -loop 10 // 循环播放 10 次
ffplay INPUT -ast 1 // 播放视频中的第一路音频流
ffplay INPUT -vst 1 // 播放视频中的第一路视频流
ffplay INPUT -x WIDTH -y HEIGHT // 指定宽高播放
...

播放原始音频/视频数据:

ffplay INPUT.pcm -f s16le -channels 2 -ar 44100
ffplay -f rawvideo -pixel_format yuv420p -s 480*480 INPUT.yuv(或 rgb)

指定播放过程中音视频同步的方式:

// 以音频(或视频、或外部时钟)作为基准进行音视频同步
ffplay INPUT -sync audio(或 video、ext) 

关于 ffplay 的更多命令可以查看官网文档:ffplay Documentation

ffmpeg

ffmpeg 是强大的媒体文件转换工具,常用于转码,可选命令非常多,编码器、视频时长、帧率、分辨率、像素格式、采样格式、码率、裁剪选项、声道数等等都可以自由选择:

ffmpeg -i INPUT -codec:v h264 -codec:a aac -s 644x360 OUTPUT

更详细的内容可以查看官网文档:ffmpeg Documentation

通用选项

还有一些命令可以用于查看 ffmpeg 支持的编解码器、像素格式、采样格式等信息,即上面 3 个文档都有的 Generic options 部分,上述三个命令都可以查看这些信息,比如:

ffmpeg -encoders
ffprobe -sample_fmts
ffplay -pix_fmts

FFmpeg 源码结构

主要组成

这部分直接引用自雷神的博客:FFMPEG中最关键的结构体之间的关系

FFMPEG中结构体很多。最关键的结构体可以分成以下几类:

a) 解协议(http,rtsp,rtmp,mms)

AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。(注意:FFMPEG中文件也被当做一种协议“file”)

b) 解封装(flv,avi,rmvb,mp4)

AVFormatContext主要存储视音频封装格式中包含的信息;AVInputFormat存储输入视音频使用的封装格式。每种视音频封装格式都对应一个AVInputFormat 结构。

c) 解码(h264,mpeg2,aac,mp3)

每个AVStream存储一个视频/音

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFmpeg 的介绍与使用 的相关文章

  • FFMPEG波形透明,背景纯色

    我正在尝试使用 ffmpeg 生成波形 我希望背景为纯色 实际波形为透明 以下部分实现了我想要的 除了有黑色背景 我希望能够将其更改为任何颜色 但波形是透明的 我怎样才能用 ffmepg 实现这个目标 ffmpeg i input mp3
  • 如何在服务器上使用 ffmpeg 从 WebRTC 流获取音频和视频

    我正在尝试从 WebRTC 流获取音频和视频 并在 ubuntu 服务器上使用 ffmpeg 处理它 转码或转储 我天真地期望它能简单地解释 WebRTC 提供的 sdp 但我错了 我怀疑 ffmpeg 无法发回答案 sdp 必须手动完成
  • 如何使用 ffmpeg 设置默认流

    我有一些 m4v 文件 我想用 ffmpeg 添加字幕 我知道我需要映射流以将它们放入输出文件中 但如何确保此字幕流将是默认流 字幕是 srt 人们似乎说它们与 mp4 容器不兼容 我需要先将字幕转换为什么 另外 各种流的顺序重要吗 视频流
  • Xuggler 未转换 .webm 文件?

    我只是尝试使用 Xuggler 将 mov 文件转换为 webm 这应该可以工作 因为 FFMPEG 支持 webm 文件 这是我的代码 IMediaReader reader ToolFactory makeReader home use
  • 如何启用 FFMPEG 日志记录?

    我想调试 ffmpeg 我添加以下代码来打印日志 av log s AV LOG PANIC fmt or printf msg 但这行不通 没有任何调试信息 然后我启用调试构建选项 export COMMON FF CFG FLAGS C
  • 无法从 webm 视频中提取 webp 中的帧

    我无法从 8K webp 视频中提取帧 我正在使用 ffmpeg 来提取帧 这是我正在使用的命令 ffmpeg i content to extract webm frame 2d webp 我得到的输出文件中没有任何数据 但是 当我导出为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 以 Gif 形式在 Android 上以编程方式共享 WhatsApp 视频

    我如何将 mp4 视频文件转换为 WhatsApp gif 文件 在应用程序 UI 中简单显示为 gif 但内部是特定的 mp4 格式 以在 android 共享意图中使用 并被 Whatsapp 聊天应用程序识别为此类媒体 我搜索了很多
  • 如何在不指定像素格式的情况下从 AVFrame.data[] 和 AVFrame.linesize[] 获取原始帧数据?

    我的总体想法是frame data 根据视频的像素格式 RGB 或 YUV 进行解释 但是有没有通用的方法可以从帧中获取所有像素数据 我只想计算帧数据的哈希值 而不解释它来显示图像 根据 AVFrame h uint8 t AVFrame
  • 如何将H264封装到mp4容器中?

    我有一个程序生成一堆原始 H264 帧 并希望将其放入 mp4 容器中进行流式传输 有人知道该怎么做吗 我想我会使用 ffmpeg 然而 这需要商业使用 而且 ffmpeg 似乎只能通过它的 x264 库来做到这一点 它使用 GPL 许可证
  • FFMPEG:尝试从图像和音频创建 facebook 流时出现转换失败错误?

    目标是从图像和音频文件创建 Facebook 流 这是我的命令 ffmpeg re y loop 1 f image2 i maxresdefault jpg i audio loop mp3 ar 44100 b a 128k vcode
  • 如何使用 FFmpeg 连接 MTS 视频并应用过滤器而不重新编码?

    我有一个包含许多 MTS 视频文件的 txt 文件 我想使用将它们全部合并在一起FFmpeg并获取一个大的 MTS 文件 但我想申请fade in and fade out到最后的视频 我可以在不重新编码的情况下做到这一点吗 因为重新编码需
  • 输入文件列表以与 Node.js 模块 Fluent-ffmpeg 连接

    版本信息 流利的 ffmpeg 版本 2 1 2 ffmpeg版本 3 4 2 操作系统 Windows 10 要重现的代码 ffmpeg C path to list txt mergeToFile C path to out mp4 C
  • 在 Python 中使用音频流 RTMP 通过管道和 OpenCV 到 FFmpeg

    我正在尝试使用音频流式传输 FFmpeg 我将在下面展示我的代码 导入模块 import subprocess as sp 创建变量 rtmpUrl rtmp a rtmp youtube com live2 key camera path
  • 推荐用于视频编码的最佳质量/性能 H264 编码器?

    我正在寻找一种速度快 需要较少 CPU 功率并生成质量非常好的 mp4 视频的视频编码器 输入视频可以是任何格式并由用户上传 我唯一知道的是 FFMPEG 库 还有其他更好的吗 该程序必须有一个我感兴趣的批处理实用程序 exe 如果您愿意分
  • Bash while 循环等待任务完成

    我创建了一个 bash 脚本来处理文件夹及其子文件夹中的视频 find type f name mkv while read file do ffmpeg i file done 问题 它不是 while 循环等待 ffmpeg 完成 而是
  • 背景图像上的 Showfreqs 和 Showwave?

    我想让 FFMPEG 将我的播客音频导出到一个文件 我可以上传到 YouTube 该文件在视觉上很有趣 目前我正在使用以下代码 但我没有完全理解 ffmpeg i E04 ProphetsPrey wav filter complex 0
  • 未找到 ffmpeg 命令,但 pip 列表显示 ffmpeg

    我一直在尝试使用命令安装 ffmpegpip install ffmpeg我正在没有 sudo 权限的服务器上执行此操作 在编写 ffmpeg 时 我得到 ffmpeg command not found 然后我检查了pip list它显示
  • Matplotlib动画无法保存

    我正在尝试学习如何使用创建 matplotlib 动画Jake Vanderplas 的基本示例 http jakevdp github io blog 2012 08 18 matplotlib animation tutorial 但我
  • 从可打开的 URI 将本机 fd int 传递到 FFMPEG

    我正在尝试从打开一个文件描述符CATEGORY OPENABLE来自存储访问框架的 URI 我首先尝试使用 SD 卡上的文件 我已经可以使用以下命令将其解析为文件路径 data列并打开 我试图避免这样做 而是使用文件描述符 我得到的原生 i

随机推荐

  • Vuex状态管理详解

    Vuex详解 学习目录 vuex介绍 解释 Vuex是一个专门为Vue js应用程序开发的状态管理模式 它采用集中式存储管理应用的所有组件 并以相应的规则保证状态以一种可预测的方式发生变化 配套的公共数据管理工具 它可以把一些共享的数据放到
  • Styles and Themes

    http blog csdn net recordgrowth article details 52310974
  • 下载matlab内存不足怎么办,MATLAB 内存不足 "Out of memory" 解决办法

    如果你的系统是32位系统 进程最大支配2G空间 另外2G给系统进程了 在使用matlab 运行耗内存程序时候 会可能出现 out of memory 错误 这是因为matlab没有足够内存可以使用的缘故 解决的简单方法是加内存和升级为64位
  • Flash Linux to eMMC

    实验目的 从eMMC启动Linux系统 Step1 确定eMMC被挂在哪个设备 哪个设备含有boot0分区和boot1分区 就是eMMC 实验中是位于mmcblk1上 root am64xx evm ls l dev mmcblk brw
  • QT入门Input Widgets之QScrollBar

    目录 一 界面布局功能 1 界面位置介绍 2 控件界面基本属性 2 1 horizontalScrollBar界面属性 3 样式设置 此文为作者原创 创作不易 转载请标明出处 一 界面布局功能 1 界面位置介绍 QScrollBar主要分为
  • Python使用Matplotlib可视化多组并排的柱状图

    Python使用Matplotlib可视化多组并排的柱状图 Matplotlib是Python中最流行的数据可视化库之一 它可以创建各种类型的图表 包括线性图 散点图 饼图等等 在本文中 我们将重点介绍如何使用Matplotlib库创建多组
  • CyclicBarrier调试

    一CyclicBarrier 控制所有线程等待 知道达到某种条件 所有的线程才会继续走下去 是一个同步工具类 它允许一组线程互相等待 直到到达某个公共屏障点才停止等待 与CountDownLatch不同的是该barrier 屏障 在释放等待
  • 在vw中运行linux,Windows系统直接运行Linux,竟是如此简单

    要想在Windows10以前的系统上 运行Linux程序是比较复杂的 需要使用cygwin之类的工具 不仅下载慢 而且功能有限 后来出现了诸如VirtualBox VMWare Workstation和Microsoft Hyper V之类
  • 使用python随机生成IP+域名并写入excel表

    题目要求 使用python随机生成IP 随机域名 并创建excel表 将生成的随机IP与域名数据写入 代码如下 import random import socket import struct import xlwt book xlwt
  • Window 安装Hive

    基本环境资源 Hadoop 2 7 X Hive 2 1 X bin tar gz 版本 Hive 1 x src tar gz 源码版本 第一步 windows 安装Hadoop2 7 x 请参考 第二步 下载Hive tar gz 官网
  • ASP.NET Core 企业级开发架构简介及框架汇总

    ASP NET Core 企业开发架构概述 企业开发框架包括垂直方向架构和水平方向架构 垂直方向架构是指一个应用程序的由下到上叠加多层的架构 同时这样的程序又叫整体式程序 水平方向架构是指将大应用分成若干小的应用实现系统功能的架构 同时这样
  • VScode连接本地Docker

    一 安装VScode和Docker 1 vscode的安装 官网下载到最新的X64安装包 然后使用下述命令进行安装 dpkg i code 1 73 1 1667967334 amd64 deb 安装成功之后 可以在应用的安装列表中查看到
  • OpenHarmony学习笔记——Hi3861使用DHT11获取温湿度

    文章目录 前言 DHT11简介 通信流程 硬件连接 编程实现 GPIO API简介 复位总线 DHT11应答 数据读取 效果一览 总结 目录 前言 此文主要是使用Hi3861的GPIO口 模拟1 Wire时序 获取类单总线协议器件DHT11
  • 2023中国人工智能成熟度模型报告

    本报告基于三大关键指标 参考市场规模 融资事件等公开资料 并结合了AI行业内硬件 模型 应用不同领域的各位专家观点 构建涵盖40 技术点的中国人工智能成熟度模型 为技术的应用决策和未来投资参考提供研究分析工具 关注公众号 互联互通社区 回复
  • xp系统itunes无法连接服务器失败,xp系统iTunes无法连接到iTunes store的修复步骤

    今天和大家分享一下xp系统iTunes无法连接到iTunes store问题的解决方法 在使用xp系统的过程中经常不知道如何去解决xp系统iTunes无法连接到iTunes store的问题 有什么好的办法去解决xp系统iTunes无法连接
  • NoSQL数据库入门

    一 NoSQL数据库概述 NoSQL 是一种不同于关系数据库的数据库管理系统设计方式 是对非关系型数据库的统称 它所采用的数据模型并非传统关系数据库的关系模型 而是类似键 值 列族 文档等非关系模型 NoSQL 数据库没有固定的表结构 通常
  • java截取某两个字符之间的字串_Java截取特定两个标记之间的字符串实例

    Java截取特定两个标记之间的字符串实例 如有一串字符串 higklmnopq java代码如下 public class StringTest public static void main String args String str
  • linux 下安装编译配置 QT

    注 1 自己 make qt everywhere opensource src s时 在 configure前主动装好下面3个 sudo apt get install libX11 dev libXext dev libXtst dev
  • 声灭火器火灾数据集-Acoustic Extinguisher Fire Dataset

    Acoustic Extinguisher Fire Dataset The dataset was obtained as a result of the extinguishing tests of four different fue
  • FFmpeg 的介绍与使用

    FFmpeg Fast Forward Moving Picture Experts Group FFmpeg 命令行工具的使用 在 FFmpeg 官网 可以下载对应平台的可执行程序包 比如 Windows 平台的下载地址是 https f