FFmpeg开发笔记(三)FFmpeg的可执行步伐介绍

打印 上一主题 下一主题

主题 878|帖子 878|积分 2634

​ 外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行步伐,该方式适合没什么特殊要求的普通场景;另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性化的逻辑,因此该方式适合厂商专用的特制场景。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
开源的FFmpeg框架提供了三个可执行步伐,分别是ffmpeg、ffplay和ffprobe,下面分别睁开详细介绍。
1、ffmpeg步伐

ffmpeg步伐主要有两个用途,一个是查询FFmpeg的支持信息,另一个是处置处罚音视频的转换操作。关于音视频的转换命令,会在背面的文章中逐一介绍,这里只说明该步伐可以或许查到哪些FFmpeg支持信息。前面在搭建FFmpeg开发情况的时候,提到可以用下面命令检察FFmpeg的版本信息:
  1. ffmpeg -version
复制代码
除此之外,ffmpeg步伐还能查询它所支持的文件格式,比如下面命令可以检察FFmpeg支持的文件格式:
  1. ffmpeg -formats
复制代码
执行上面命令,控制台回显长长的一串文件格式支持列表,列表开头是下面这样子的。
  1. File formats:
  2.  D. = Demuxing supported
  3.  .E = Muxing supported
  4.  --
  5.  D  3dostr          3DO STR
  6.   E 3g2             3GP2 (3GPP2 file format)
  7.   E 3gp             3GP (3GPP file format)
  8.  D  4xm             4X Technologies
复制代码
可见FFmpeg支持的文件格式分为两种范例,一种被标记为D,表现支持该范例文件的解析;另一种被标记为E,表现支持该范例文件的封装。继续下拉这一长串文件格式列表,既能找到古老的vcd格式,也能找到风靡一时的rm和flv格式,还能找到mp3和mp4等常见格式,看来FFmpeg真的将音视频格式一网打尽了。
ffmpeg步伐可以或许检察的更多信息见下。由于相关概念比较专业,因此这里不再一一睁开,等到后续有涉及时再来讲解。
  1. ffmpeg -codecs:查看支持的编解码器
  2. ffmpeg -formats:查看支持的文件格式
  3. ffmpeg -help:查看命令行的帮助信息
  4. ffmpeg -protocols:查看支持的通讯协议
  5. ffmpeg -version:查看FFmpeg的版本信息
复制代码
2、ffplay步伐

ffplay步伐相当于一个播放器,主要用来播放音视频文件。在播放音频时,ffplay不仅会让扬声器放出声音,还会在屏幕展示该音频的波形画面。在播放视频时,ffplay会在屏幕展示连续的视频画面,就像看影戏看电视那样。如果视频文件携带有音频数据,那么ffplay会让扬声器同时播放声音。
以播放视频为例,下面命令使用ffplay步伐播放名叫fuzhous.mp4的视频文件。
  1. ffplay fuzhous.mp4
复制代码
执行上面命令,控制台一边弹出视频播放器窗口如下图所示,一边回显以下的输入文件信息。
​编辑
  1. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fuzhous.mp4':
  2.   Metadata:
  3.     major_brand     : isom
  4.     minor_version   : 512
  5.     compatible_brands: isomiso2avc1mp41
  6.     encoder         : Lavf59.34.102
  7.   Duration: 00:00:19.52, start: 0.000000, bitrate: 288 kb/s
  8.   Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 480x270 [SAR 1:1 DAR 16:9], 285 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
复制代码
根据以上的文件信息,可知该视频持续时间为19.52秒,视频编码器接纳h264,视频分辨率为480x270,fps帧率为每秒25帧。
再来看看播放音频,下面命令表现使用ffplay步伐播放名叫ships.mp3的音频文件。
  1. ffplay ships.mp3
复制代码
执行上面命令,控制台一边弹出音频波形窗口如下图所示,一边回显以下的输入文件信息。
​编辑
  1. Input #0, mp3, from 'ships.mp3':   0KB vq=    0KB sq=    0B f=0/0
  2.   Metadata:
  3.     title           : 渔舟唱晚
  4.     artist          : 中国十大古典名曲
  5.     genre           : Other
  6.     encoder         : Lavf59.27.100
  7.   Duration: 00:03:37.91, start: 0.025057, bitrate: 128 kb/s
  8.   Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s
复制代码
根据以上的文件信息,可知晓该音频的标题和演唱者,以及音频的持续时间为3分37.91秒,音频编码器接纳mp3,采样频率为44100赫兹。
ffplay步伐的更多命令行参数可通过下面命令检察,这里不再一一睁开了。
  1. ffplay -help
复制代码
3、ffprobe步伐

ffprobe步伐是一个多媒体分析工具,它既能分析音视频的文件参数、容器参数等信息,也能分析音视频文件中每个数据包的大小、范例、编解码器等信息。
以检察文件参数为例,下面命令表现使用ffprobe检察视频文件2018.mp4的格式信息。
  1. ffprobe -show_format 2018.mp4
复制代码
执行上面命令,控制台回显如下的文件格式信息,斜杆背面是笔者添加的说明解释。
  1. [FORMAT]
  2. filename=2018.mp4    // 文件名
  3. nb_streams=2    // 流的数量。为2表示包含视频流和音频流
  4. nb_programs=0
  5. format_name=mov,mp4,m4a,3gp,3g2,mj2    // 格式名称
  6. format_long_name=QuickTime / MOV    // 完整的格式名称
  7. start_time=0.000000    // 开始时间,单位秒
  8. duration=253.332993    // 结束时间,单位秒
  9. size=42853286    // 文件大小,单位字节
  10. bit_rate=1353263    // 比特率,即每秒传输的比特数量(1个字节有8个比特)
  11. probe_score=100
  12. [/FORMAT]
复制代码
因为ffprobe步伐返回的文件信息直接表现在控制台,密密麻麻令人看得眼花缭乱,所以现实上很少使用ffprobe分析音视频,而是接纳第三方专业的桌面软件加以分析,背面讲到相关格式时再介绍这些软件。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表