首先,向雷霄骅致敬
FFMPEG官网https://www.ffmpeg.org/
FFMPEG中包含命令行工具ffmpeg,是用来做转码的
还有一个ffplayer工具,是基于sdl和ffmpeg开发的,用来播放视频的工具
目前的版本还有一个ffprobe,官方介绍说是流解析器,不过由于没有接触过,先不管
背景
使用ffmpeg作为内核开发的视频播放器:
Mplayer,射手播放器,暴风影音,KMPlayer,QQ影音
使用ffmpeg作为内核的转码器:
格式工厂,狸窝视频转码器,暴风转码
总而言之,ffmpeg是视频行业领域中的“瑞士军刀”
特点
基于命令行
好处是更加灵活,可以完成各种各样复杂的命令(比如批处理),对于高级的用法比较适合;另外一个优点是开源
坏处是没有界面,不人性化,不易于让人接触
FFMPEG命令行工具下载
下载地址:官网:https://www.ffmpeg.org/---------->download---------->选择对应的版本---------->进入Zeranoe FFMpeg网站
注意:千万不要从FFMPEG官网直接下载源代码
初学者最好还是先使用一下FFMPEG,先不要上来就编译~
由于我现在用的是mac ,所以就下载了mac版本的FFMPEG,点击最下方的链接,然后进入https://ffmpeg.zeranoe.com/builds/,当然也可以直接访问这个网址,进行下载,我目前下载的版本是3.4.1版本,大小为50m左右
使用
ok,下载完后,对这个ffmpeg压缩包进行解压,然后看到这样的目录结构
通过命令打开bin目录,然后执行如图
如果出现上方的信息的话,说明ffmpeg可以使用了,当然很简单啦~~
ffmpeg命令使用
那么下面我们来看下ffmpeg这个命令吧
功能:ffmpeg这个命令是用来做视频的转码的
最简单的命令:ffmpeg -i input.avi -b:v 640k output.ts
解释一下上边的命令:该命令将当前目录下的input.avi文件转化成output.ts文件,并将output.ts文件视频的码率设置为640kbps
命令格式:
ffmpeg -i {输入文件路径} -b:v {输出视频码率} {输出文件路径}
所有的参数都是以键值对的形式指定的(出去最后输出文件路径)
例如输入文件参数是“-i”,而参数值是输入文件路径;
输出码率参数是“-b:v” ,而参数值是640k
注意:位于最后边的输出文件路径是前边是没有参数名称的。
下面是ffmpeg常用的一些命令,取自雷神视频
详细的参数可以访问官方文档
https://www.ffmpeg.org/ffmpeg.html
要多看文档,必要时用下翻译即可
ok,现在我们来试玩一下~
玩一玩命令吧
我将一个mp4文件放到了ffmpeg的目录里,如图,注意此时ffmpeg命令并未与此mp4文件处于同一文件
然后执行命令
当出现这样的代码时,表示已经开始转码了
ok,一小会之后转码完成,因为我的视频是5、6分钟的,所以速度很快,如图
注意:码率就是视频在播放中,一秒钟的数据量,那么如果设置的码率越大,那么视频就越清晰,但是如果不设置的话,那么会有一个默认值,默认转化出来的视频清晰度很低,而640k算是一个稍微清晰的码率
试一试一些常见命令,如-t duration -ss position
-t duration 的作用是设置只转化几秒的视频,-t 5 表示只转化5s的视频
-ss position的作用是从哪个位置开始转化,比如-ss 20 表示从视频的第20s 开始转化
如果-ss postion 与-t duration 配合使用的话,可以完成一个视频裁剪的功能
注意:-ss postion 需要写到-i 输入文件的前边
下面演示一下
效果见截图
ok,那么其他命令只需要自己试验一下就好了,这里再提示一下:
-s 设置帧大小的意思就是设置分辨率的意思
-c:v和-c:a 一个是设置视频编码方式,一个是设置音频编码方式,这两个已经用的不是很多了,因为视频的编码方式现在都是H264了,而音频现在都是AAC了。
ok,以上是ffmpeg命令的一些用法,我们发现,回了ffmpeg,以前我们用格式工厂做的转化,和视频的裁剪,现在都能够通过命令行处理了,是不是很爽呢~。
ffplay
这个命令其实很简单,就是用来播放视频的
用法 :
ffplay {视频文件}
操作播放器的快捷键
q/esc 退出
f 全屏
p/空格 暂停
鼠标点击屏幕 跳转到指定位置
看下效果图
我这里执行的时候遇到点小问题,就是在执行ffplay时候,提示没有该命令,所以我直接将ffplay的完整路径拖过来执行的
ffplay用法就是这样喽,也是很简单的。
ok,今天的内容就到这了,觉得喜欢可以收藏下,我会持续更新~