笔记来源
https://www.bilibili.com/video/av40146374
01.下载,配置
ffmpeg下载
首先打开 ffmpeg官网下载
或者用 百度云 下载(https://pan.baidu.com/share/init?surl=kDAv-tyc8LJ0wi1sCEPNCA 提取码:ff8o)
然后点击 windows 对应的图标,再点击下面的”Windows EXE File”随便选一个点进去选择一个版本下载。
输入ffmpeg -version检查是否安装成功
02.简介,上手(FFmpeg FFprobe FFplay)
FFMPEG简介
FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。
基础知识
1.容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。
2.媒体流(Stream):表示时间轴上的一段连续数据,如一段声音数据、一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器。
3.数据帧/数据包(Frame/Packet):通常,一个媒体流是由大量的数据帧组成的,对于压缩数据,帧对应着编解码器的最小处理单元,分属于不同媒体流的数据帧交错存储于容器之中。
一般情况下:
Frame对应压缩前的数据,Packet对应压缩后的数据。
4.编解码器(Codec):以帧为单位实现压缩数据和原始数据之间的相互转换的
5.复用(mux):把不同的流按照某种容器的规则放入容器,这种行为叫做复用(mux)
6.解复用(mux):把不同的流从某种容器中解析出来,这种行为叫做解复用(demux)
7. 码率和帧率是视频文件的最重要的基本特征,对于他们的特有设置会决定视频质量。如果我们知道码率和时长那么可以很容易计算出输出文件的大小。
8.帧率:帧率也叫帧频率,帧率是视频文件中每一秒的帧数,肉眼想看到连续移动图像至少需要15帧。
9.码率:比特率(也叫码率,数据率)是一个确定整体视频/音频质量的参数,秒为单位处理的位数,码率和视频质量成正比,在视频文件中中比特率用bps来表达。
ffmpeg/ffplay/ffprobe区别
ffmpeg:
Hyper fast Audio and Video encoder超快音视频编码器(类似爱剪辑)
ffplay:
Simple media player简单媒体播放器
ffprobe:
Simple multimedia streams analyzer简单多媒体流分析器
(1)查看ffmpeg的帮助说明,提供的指令
ffmpeg -h
(2)播放媒体的指令
按住shift,在空白处右键,打开命令行窗口(win10添加在此处打开命令行窗口工具,链接: https://pan.baidu.com/s/1gSMwRgptumkI0-avrCGU6Q 提取码: 8jic)
ffplay video.mp4 esc退出
cls enter清空
ffplay music.mp3
(3)常用快捷键
按键"Q"或"Esc":退出媒体播放
键盘方向键:媒体播放的前进后退
点击鼠标右键:拖动到该播放位置
按键"F":全屏
按键"P"或空格键:暂停
按键"W":切换显示模式
(4)查看媒体参数信息
ffprobe video.mp4
03.转换格式(文件格式,封装格式)
文件格式
我们经常看见的视频都是以.mp4 .flv等作为后缀名,这是视频的文件格式。
文件格式的作用是方便系统识别,并关联这些文件,好让相应的文件由相应的程序打开。
这些后缀名可以随便改,不会对文件有任何影响,如果打开出错的话再改回来就行。
封装格式
这些视频的后缀其实也叫视频的封装格式,简称视频格式。
封装: 后缀名(封装格式/文件格式)。所谓封装就是把编码器生成的多媒体文件,如视频,音频,字幕按照一定的标准混合封装在一起。
容器: 为多媒体内容提供索引。如果没有容器的话一个视频你只能从头看到尾,没有声音。容器标准由不同的公司制定,有些是兼容的,有些是要改变媒体的编码格式才能转换,一般情况下我们都是选择效率高,兼容性好的容器标准。下面是一些常见的容器标准。
(1)文件名可以是中英文,但不能有空格。不然命令行就分不清了。
(2)转换格式
ffmpeg -i video.mp4 video_avi.avi
RMVB:太封闭了,只能用来封装Real video格式的视频
MKV:最开放,几乎支持所有的音视频,但是体积太大了
AVI:有点老旧,已经不太适应最近的媒体文件了
现在比较流行的就是MP4和MOV
MOV:是苹果公司制定的,支持透明的视频
MP4:是当前最主流的视频格式,各种软硬件也都支持的
一般我们都是把其他格式的视频文件转换成mp4的视频文件
ffmpeg -i input.mov outout.mp4
【-i】 i是input的缩写,这个指令是指定输入文件的
这句指令就是指:用ffmpeg把input.mov转换成output.mp4