FFmpeg 的介绍与使用

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 结构。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值