关于ffmpeg:FFmpeg基本概念和用法

3次阅读

共计 1659 个字符,预计需要花费 5 分钟才能阅读完成。

0. 前言

FFmpeg 号称是音视频应用程序的瑞士军刀,广泛应用于视频网站和大型软件如 Youtube 和 Chrome。它诞生于 2004 年,在 LGPL、GPL 协定下公布,任何人都能够在恪守协定的状况下自在应用。

FFmpeg 次要由两大部分组成:
第一局部:
3 个独立的可执行应用程序,实现不同性能,别离是:

  1. ffmpeg.exe:音视频转码器;
  2. ffplay.exe:音视频播放器;
  3. ffprobe.exe:多媒体码流分析器。

第二局部:
7 个利用开发库,能够依据各自不同需要灵便应用这些库,开发本人的利用。

  1. libavcodec:音视频编码器和解码器;
  2. libavformat:各种多媒体容器格局的封装、解封工具;
  3. libavutil:多媒体利用罕用的工具集,次要是为了简化开发。蕴含诸如字符串处理函数、随机数生成器、罕用数据结构、数学函数、加密和多媒体相干函数等;
  4. libavdevice:通用的音视频采集和渲染框架,反对多种输入输出设施;
  5. libavfilter:通用的音视频过滤框架,蕴含多种过滤器;
  6. libswscale:高性能图像伸缩、色调空间、像素格局转换;
  7. libswresample:高性能音频重采样,采样格局转换。

FFmpeg 的下载和装置,能够查看官网文档。

1. 基本概念

要把 FFmpeg 用好,须要对视音频解决有全局视线和外围常识储备,不至于走太多弯路。有必要先相熟一些基本概念。

1.1 原始数字视频和音频

与模拟信号辨别开,即用数字信号来示意视频和音频。
视频实质上是一帧帧的图像在间断播放,因为 帧率 (即一秒钟匀速出现图像的张数,如 25 帧 / 秒)超过了人眼辨认的速度,给人一种间断的感觉。音频也是同样情理,音频由一个个采样点组成(PCM),通常 采样率(8000KHz)超过人耳能分别的速度。

1.2 编码格局

原始音视频数据量微小,在存储和传输中都成很大问题,于是人们创造了各种压缩算法来升高数据量,这些算法就是编码器和解码器。
常见的视频编码格局有:

H.264
H.265
VP8
VP9

常见的音频编码格局有:

AAC
MP3

以上这些编码格局都是有损的,意思是通过压缩后,原始信息的一部分失落并无奈还原了,然而益处是体积极大的升高了。
用 FFmpeg 查问所有反对的编码格局

ffmpeg -codecs

1.3 编码器 / 解码器

编码器、解码器别离是用于针对一种 编码格局 进行编码(压缩)和解码(解压缩)的,须要留神的是对同一种编码格局如 H.264,可能存在多种编码器和解码器,如 libx264 蕴含了 H.264 编码器和解码器,而 nvenc_h264 只蕴含 H.264 编码器。

FFmpeg 查问所有反对的编码器

ffmpeg -encoders

FFmpeg 查问所有反对的解码器

ffmpeg -decoders

2. FFmpeg 的应用

FFmpeg 命令行很弱小但也简单,但最罕用的并不简单。

2.1 简略版 FFmpeg 应用

ffmpeg [全局参数] [输出文件参数] -i 输出文件 [输入文件参数] 输入文件

注:命令中用 [] 括起来的是可选项

例 1:flv 转 mp4

ffmpeg -i demo.flv out.mp4

例 2:将 pcm 转为 mp3

ffmpeg -y -f s16le -ac 1 -ar 8000 -acodec pcm_s16le -i out.mp3

注:因为 pcm 文件不蕴含参数信息,须要通过 [输出文件参数] 来指定


例 3: 查看文件信息

ffmpeg -i demo.flv

例 4:转编码格局

ffmpeg -i demo.flv -c:v h264 -c:a aac out.mp4

例 5:转文件容器格局

ffmpeg -i demo.flv -c copy out.avi

2.2 参数阐明

参数 参数阐明
-y 容许笼罩(全局参数)
-f s16le 指定容器格局为 s16le
-ac 1 指定音频通道数为 1
-ar 8000 指定音频采样率为 8k
-acodec pcm_s16le 指定音频编码格局为 pcm_s16le
-acodec pcm_s16le 指定音频编码格局为 pcm_s16le
-c:v h264 指定视频编码格局为 h264
-c:a aac 指定音频编码格局为 aac
-c copy 编码格局放弃不变
正文完
 0