FFMPEG小白-day01

首先,向雷霄骅致敬

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压缩包进行解压,然后看到这样的目录结构


FFMPEG小白-day01_第1张图片
ffmpeg目录结构

通过命令打开bin目录,然后执行如图


FFMPEG小白-day01_第2张图片
ffmpeg命令执行

如果出现上方的信息的话,说明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常用的一些命令,取自雷神视频


FFMPEG小白-day01_第3张图片
ffmpeg常用命令

详细的参数可以访问官方文档

https://www.ffmpeg.org/ffmpeg.html

FFMPEG小白-day01_第4张图片
ffmpeg官方文档

要多看文档,必要时用下翻译即可

ok,现在我们来试玩一下~

玩一玩命令吧

我将一个mp4文件放到了ffmpeg的目录里,如图,注意此时ffmpeg命令并未与此mp4文件处于同一文件


FFMPEG小白-day01_第5张图片
转码示例(恐怖片不要想歪了)

然后执行命令


FFMPEG小白-day01_第6张图片
ffmpeg转码

当出现这样的代码时,表示已经开始转码了


FFMPEG小白-day01_第7张图片
开始转码

ok,一小会之后转码完成,因为我的视频是5、6分钟的,所以速度很快,如图


FFMPEG小白-day01_第8张图片
转码完成

注意:码率就是视频在播放中,一秒钟的数据量,那么如果设置的码率越大,那么视频就越清晰,但是如果不设置的话,那么会有一个默认值,默认转化出来的视频清晰度很低,而640k算是一个稍微清晰的码率

试一试一些常见命令,如-t duration -ss position

-t duration 的作用是设置只转化几秒的视频,-t 5 表示只转化5s的视频

-ss position的作用是从哪个位置开始转化,比如-ss 20 表示从视频的第20s 开始转化

如果-ss postion  与-t duration 配合使用的话,可以完成一个视频裁剪的功能

注意:-ss postion 需要写到-i 输入文件的前边 

下面演示一下


FFMPEG小白-day01_第9张图片
-ss -t 命令的使用

效果见截图


FFMPEG小白-day01_第10张图片
压缩之后的test1文件


FFMPEG小白-day01_第11张图片
压缩之前的test文件

ok,那么其他命令只需要自己试验一下就好了,这里再提示一下:

-s 设置帧大小的意思就是设置分辨率的意思

-c:v和-c:a 一个是设置视频编码方式,一个是设置音频编码方式,这两个已经用的不是很多了,因为视频的编码方式现在都是H264了,而音频现在都是AAC了。

ok,以上是ffmpeg命令的一些用法,我们发现,回了ffmpeg,以前我们用格式工厂做的转化,和视频的裁剪,现在都能够通过命令行处理了,是不是很爽呢~。

ffplay

这个命令其实很简单,就是用来播放视频的

用法 :

ffplay  {视频文件}

操作播放器的快捷键

q/esc 退出

f  全屏

p/空格  暂停

鼠标点击屏幕 跳转到指定位置

看下效果图


FFMPEG小白-day01_第12张图片
ffplay示意图

我这里执行的时候遇到点小问题,就是在执行ffplay时候,提示没有该命令,所以我直接将ffplay的完整路径拖过来执行的

ffplay用法就是这样喽,也是很简单的。

ok,今天的内容就到这了,觉得喜欢可以收藏下,我会持续更新~


FFMPEG小白-day01_第13张图片
扫描二维码,加我微信,一起探讨技术问题

你可能感兴趣的:(FFMPEG小白-day01)