From 26d1abef969556d1b6b20942856bd1a4ba0f525c Mon Sep 17 00:00:00 2001 From: jaywcjlove Date: Sun, 6 Nov 2022 14:50:52 +0000 Subject: [PATCH] doc: update `ffmpeg.md` (#18) d7d6b0d4472dce08b453b085498b6374905586f2 --- docs/ffmpeg.html | 286 ++++++++++++++++++++++++++++++++++++++++++----- index.html | 4 +- 2 files changed, 260 insertions(+), 30 deletions(-) diff --git a/docs/ffmpeg.html b/docs/ffmpeg.html index 72472c68..e7725d6e 100644 --- a/docs/ffmpeg.html +++ b/docs/ffmpeg.html @@ -42,8 +42,9 @@

本备忘清单是 FFmpeg 中常见视频处理操作的备忘清单

FFmpeg 参考

-

FFmpeg 参考

+

安装

+

Linux

$ apt-get install ffmpeg
 $ yum install ffmpeg
@@ -51,36 +52,264 @@
 

MacOS

$ brew install ffmpeg
 
-

示例

+

示例

+

mp4 转 avi:

$ ffmpeg -i input.mp4 output.avi
 

webm 转 mp4:

$ ffmpeg -i movie.webm movie.mp4
 
-

常用开关

-
-codecs   # 列出编解码器
--c:v      # 视频编解码器(-vcodec)-'copy'复制流
--c:a      # 音频编解码器(-acodec)
--fs SIZE  # 限制文件大小(字节)
-
-

音频

-
-aq QUALITY  # 音频质量(特定于编解码器)
--ar 44100    # 音频采样率 (Hz)
--ac 1        # 音频通道(1=单声道,2=立体声)
--an          # 没有音频
--vol N       # 音量(256=正常)
-
-

比特率

-
-b:v 1M      # 视频比特率(1M = 1Mbit/s)
--b:a 1M      # 音频比特率
-
-

视频

-
-aspect RATIO    # 纵横比(4:3、16:9 或 1.25)
--r RATE          # 每秒帧率
--s WIDTHxHEIGHT  # 帧大小
--vn              # 没有视频
+

全局选项

+ + + + + + + + + + + + + + + + + +
:--
-y覆盖输出文件
-n不要覆盖输出文件
+

主要选项

+ + + + + + + + + + + + + + + + + + + + + + + + + +
:--
-f fmt强制输入或输出文件格式
-i fName输入文件名,未指定显示内容流的摘要
-c codecName指定编解码器 [输入或输出]
-fs Nbytes以 Nbytes 指定最大输出文件大小
+

基础参数

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:--
-codecs列出可用编码
-formats列出支持的格式
-protocols列出支持的协议
-i input.mp4指定输入文件
-c:v libx264指定视频编码
-c:a aac指定音频编码
-vcodec libx264旧写法
-acodec aac旧写法
-fs SIZE指定文件大小
+

视频参数

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:--
-b bRate设置视频比特率(单位 kbit/s)
-fixaspect固定纵横比
-bt tolerance设置视频比特率容差(单位 kbit/s)
-maxrate bRate设置最大视频比特率容差(单位 kbit/s)
-minrate bRate设置最小视频比特率容差(单位 kbit/s)
-bufsize size设置速率控制缓冲区大小(以 kByte 为单位)
-sameq使用与源相同的视频质量(意味着 VBR)
-newvideo将新的视频流添加到当前输出流
-aspect RATIO纵横比(4:3、16:9 或 1.25)
-r RATE每秒帧率
-s WIDTHxHEIGHT帧大小
-vn没有视频
+

码率设置

+
-b:v 1M      # 视频比特率(1M = 1Mbit/s)
+-b:a 1M      # 音频比特率(1M = 1Mbit/s)
 
+

尺寸规格

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:----
Kk1031000 字节千字节 Kilobytes
M1061000000 字节兆字节 Megabytes
G1091000000000千兆字节 Gigabytes
Ki2101024千字节 Kibibyte
Mi2201048576兆字节 Mebibyte
Gi2301073741824Gibibyte
+

音频参数

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:--
-ab bRate设置音频比特率(单位 kbit/s)
-aframes N设置要录制的音频帧数 [-frames:a 的别名]
-aq q设置音频质量(特定于编解码器,VBR) [-q:a 的别名]
-an禁用录音
-acodec codec设置音频编解码器。[-codec:a 的别名] 使用 'copy' 复制流。
-vol以 256 的倍数更改音频音量,其中 256 = 100%(正常)音量。例如 512 = 200%
-newaudio将新的音频流添加到当前输出流
-alang code设置当前音频流的 ISO 639 语言代码(3 个字母)

视频编辑

裁剪

@@ -107,7 +336,7 @@

将输出文件的帧速率强制为 24 fps

$ ffmpeg -r 1 -i input.m2v -r 24 output.avi
 
-

将输入文件的帧速率(仅对原始格式有效)强制为 1 fps,将输出文件的帧速率强制为 24 fps

+

将输入文件的帧速率(仅对原始格式有效)强制为 1 fps,将输出文件的帧速率强制为 24 fps

剪切视频部分

$ ffmpeg -i <input> -ss 00:01:45 -t 00:02:35 -vcodec copy -acodec copy <output>
@@ -150,7 +379,7 @@
 
$ ffmpeg -i file.mp4 -vn -acodec copy output.aac 
 
-

-vn(无视频)与 -acodec copy 结合起来。请注意,输出文件扩展名必须与输入文件中的音频编解码器匹配,-acodec copy 才能工作。

+

-vn(无视频)与 -acodec copy 结合起来。请注意,输出文件扩展名必须与输入文件中的音频编解码器匹配,-acodec copy 才能工作。

创建缩略图

在 10 秒时创建一个缩略图

@@ -191,7 +420,7 @@
$ ffmpeg -i input.mov -itsoffset 3 -i input.mov -map 0:v -map 1:a -codec:a copy -codec:v copy output.mov
 
-

将视频延迟 3 秒(即将音频提前 3 秒)

+

将视频延迟 3 秒(即将音频提前 3 秒)

$ ffmpeg -i input.mov -itsoffset 3 -i input.mov -map 1:v -map 0:a -codec:a copy -codec:v copy output.mov
 
@@ -242,6 +471,7 @@
  • FFmpeg Cheat Sheet (lzone.de)
  • FFmpeg Cheat Sheet (devhints.io)
  • FFmpeg Cheat Sheet (github.com)
  • +
  • FFmpeg Cheat Sheet (cheatography.com)
  • © 2022 Kenny Wang, All rights reserved.