ffmpeg的安装与使用

1. 安装

1.1 Windows 环境

  • 下载地址:http://ffmpeg.org/download.html#build-windows
    在这里插入图片描述

  • 解压文件

  • 配置环境变量,将bin路径添加

  • 测试,CMD窗口 ffmpeg –version

1.2 Linux 环境

sudo apt-get install ffmpeg

2. 相关概念

2.1 容器

视频文件本身其实是一个容器(container),里面包括了视频和音频,也可能有字幕等其他内容。

常见的容器格式有以下几种:

- MP4
- MKV
- 2WebM
- AVI

查看 FFmpeg 支持的容器ffmpeg -formats

2.2 编码格式

不同的编码格式,有不同的压缩率,会导致文件大小和清晰度的差异。

常用的视频编码格式如下:

- H.262
- H.264
- H.265
- VP8
- VP9
- AV1

常用的音频编码格式如下:

- MP3
- AAC

查看 FFmpeg 支持的编码格式ffmpeg -codecs

2.3 编码器

编码器是实现某种编码格式的库文件,只有安装了某种格式的编码器,才能实现该格式视频/音频的编码和解码。

常用的视频编码器:

- libx264:最流行的开源 H.264 编码器
- NVENC:基于 NVIDIA GPU 的 H.264 编码器
- libx265:开源的 HEVC 编码器
- libvpx:谷歌的 VP8 和 VP9 编码器
- libaom:AV1 编码器

常用的音频编码器:

- libfdk-aac
- aac

查看 FFmpeg 已安装的编码器ffmpeg -encoders

2.4 码率

也称比特率 Bit Rate,是单位时间内视频(或音频)的数据量,单位是 bps (bit per second,位每秒)

一般使用 kbps(千位每秒)或Mbps(百万位每秒)

不同的码率,决定着编码器压缩视频的程度,是决定视频最终质量和文件大小的关键因素。

  • 对于高分辨率的视频,通常需要更大的码率,才能有更好的画质。
  • 对于高帧速率的视频,通常需要更大的码率,才能有更好的画质。

e.g. 分别对 1080p 和 4K 视频用 5Mbps 进行编码压缩,编码器会更多地压缩 4K 的视频从而达到 5Mbps 的码率,所以画质反而差

码率的分类

  • CBR 静态码率 Constant Bit Rate,指的是固定的码率,适用于网络流媒体视频编码。
  • VBR 可变码率 Variable Bit Rate,针对每一秒画面的细节多少,从而进行变化码率的视频编码;细节少的画面码率低,细节多的画面码率高。

3. 使用

3.1 格式

命令行参数可以分成五个部分: ffmpeg {1} {2} -i {3} {4} {5}

五个部分的参数含义依次如下:

  1. 全局参数
  2. 输入文件参数
  3. 输入文件
  4. 输出文件参数
  5. 输出文件
ffmpeg \
-y \ # 全局参数
-c:a libfdk_aac -c:v libx264 \ # 输入文件参数
-i input.mp4 \ # 输入文件
-c:v libvpx-vp9 -c:a libvorbis \ # 输出文件参数
output.webm # 输出文件

3.2 参数

-y:允许覆盖,不经过确认,输出时直接覆盖同名文件。
-c:指定编码器
-c copy:直接复制,不经过重新编码,比较快
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输入文件,源文件
-an:去除音频流
-vn:去除视频流
-ar:采样率
-ac:声音通道数
-qscale 0:维持视频质量
-s:设置分辨率
-aspect:设置高宽比

3.3 常用命令

. ffmpeg -i input.mp4   查看视频信息
. ffmpeg -i video.mp4 video.avi  格式转换
. ffmpeg -i input.mp4 -aspect 16:9 output.mp4 		设置高宽比
. ffmpeg -i input.mp4 -vn -c:a copy output.aac    	提取音频
. ffmpeg -i input.aac -i input.mp4 output.mp4      	合并文件,添加音轨
. ffmpeg -i input.mp4 -c:v libx265 output.mp4     	指定编码器,转换编码格式
. ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4     更改到指定分辨率

Reference:

  • https://www.ruanyifeng.com/blog/2020/01/ffmpeg.html
  • 更多常用命令:
    - https://zhuanlan.zhihu.com/p/67878761
    - http://linux.51yip.com/search/ffmpeg
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值