From 4f28f45f6f0c4bca19d73f681245760021d1fd29 Mon Sep 17 00:00:00 2001 From: jaywcjlove Date: Fri, 11 Nov 2022 03:01:39 +0000 Subject: [PATCH] doc: add about ffmpeg's content (#45) * content: add about ffmpeg's content * update * update 2037e0f6b9dcd4479a6a52f5e1ec0d2ebaeeea7e --- docs/ffmpeg.html | 88 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 11 deletions(-) diff --git a/docs/ffmpeg.html b/docs/ffmpeg.html index 5be6fcd9..192550f3 100644 --- a/docs/ffmpeg.html +++ b/docs/ffmpeg.html @@ -42,7 +42,7 @@

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

FFmpeg 参考

安装

Linux

@@ -379,10 +379,10 @@

给定所需的视频宽度,例如 538 像素,您可以使用以下方法将视频调整为该宽度,同时保持宽高比

重新包装

提取音频流

-
$ ffmpeg -i file.mp4 -vn -acodec copy output.aac 
+
$ ffmpeg -i file.mp4 -vn -c copy output.aac 
 
-

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

+

-vn (过滤视频),使用 -c copy,不会重新解码和编码,加快速度。

创建缩略图

在 10 秒时创建一个缩略图

@@ -393,6 +393,9 @@
$ ffmpeg -i <input file> -vf fps=1/60 thumbnails/thumb%03d.png
 
+

提取视频流

+
$ ffmpeg -i file.mp4 -an -c copy output.mp4
+

处理 id3 标签

提取

@@ -408,6 +411,50 @@
$ ffmpeg -i file.aac -acodec mp3 -ar 44100 -ab 128000 output.mp3
 
+

-map 命令

+ +

-map 命令用于指定索引文件,以及索引文件中流类型和它的索引

+ +
-map index:stram_type:stream_index
+
+ + + + + + + + + + + + + + + + + + + + + +
:--
input_file_index输入的文件索引(从 0 开始)
stream_type指定文件流的类型(a -> 音频,v -> 视频,s -> 字幕)
stream_index指定流类型的索引(从 0 开始)
+
    +
  • +

    将第一个输入文件的第二个音频拷贝到 out.mp3

    +
    $ ffmpeg -i input.mp4 -map 0:a:1 -c copy out.mp3
    +
    +
  • +
  • +

    将第一个输入文件的视频流和第二个输入文件的音频流拷贝到 out.mp4

    +
    $ ffmpeg -i i1.mp4 -i i2.mp4 -map 0:v -map 0:a -c copy out.mp4
    +
    +
  • +
+

反向 -map 命令

+ +

反向的 map 命令(在 map 命令的参数前加负号)。例如,-map -0:a:0,忽略第一个文件中的第一个音频流。

+

切换容器(转换类型)

将容器从 MKV 更改为 MP4

@@ -435,6 +482,25 @@

将视频拆分为图像

$ ffmpeg -i video.mp4 image%d.jpg
 
+

录屏

+ +

查找所有可用设备

+
$ ffmpeg -f avfoundation -list_devices true -i ""
+
+ +

一定要选择好设备,根据设备进行配置。

+

windows 下录屏

+
$ ffmpeg -hide_banner -loglevel error -stats -f gdigrab -framerate 60 \
+-offset_x 0 -offset_y 0 -video_size 1920x1080 -draw_mouse 1 -i deskop \
+-c:v libx264 -r 60 -preset ultrafast -pix_fmt yuv420p -y screen_record.mp4
+
+

mac 下录屏

+
$ ffmpeg -f avfoundation -i 1:0 -preset ultrafast out.mkv
+
+

将输入文件转码为 DVD PAL 格式

+
$ ffmpeg -y -threads 8 -i inFile -target pal-dvd -ac 2 -aspect 16:9 -acodec mp2 -ab 224000 -vf pad=0:­0:0:0 outFile
+
+

转换为 Gif

$ ffmpeg -ss 2 -t 28 -i input.mp4 -vf "fps=10,scale=1080:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
@@ -448,17 +514,17 @@
 # 在非 GIF 格式之间转换
 $ ffmpeg -i input.mov -codec:v copy -codec:a copy output.mp4
 
-

移除音频

-
$ ffmpeg -i input.mov -codec:v copy -an output.mov
-
- -

将输入文件转码为 DVD PAL 格式

-
$ ffmpeg -y -threads 8 -i inFile -target pal-dvd -ac 2 -aspect 16:9 -acodec mp2 -ab 224000 -vf pad=0:­0:0:0 outFile
-
-

转换为灰度

$ ffmpeg -y -i inFile -flags gray outFile
 
+

字幕格式转换

+
# srt -> ass
+$ ffmpeg -i subtitle.srt subtitle.ass
+# ass -> vtt
+$ ffmpeg -i subtitle.ass subtitle.vtt
+
+

srt、ass、vtt 等格式之间可以相互转换

+

字幕

将字幕写入视频