FFmpeg教程——文档

本文为前段时间所发的ffmpeg教程的文档,建议先看文档,视频教程仅作为文档演示,参考其操作流程使用

文档及示例:

https://yunwu63-my.sharepoint.com/:u:/g/personal/ruoqin1031_yunwu63_onmicrosoft_com/EfY5KcB953pLl6TCptUK6RgBj-k3y2rQf8fAIdIpE9zDdA?e=iwUhcU 

再次感谢为我提供的技术上的支持,以及的联合宣发

PS:本文有很多地方不严谨,欢迎各位大佬指出!

P1 FFmpeg的介绍及安装

1.FFmpeg的介绍

1.1 官网介绍

根据FFmpeg官网的About页的介绍:

FFmpeg 是领先的多媒体框架,能够解码、编码、转码、多路复用、多路分解、流式传输、过滤和播放人类和机器创建的几乎所有内容。它支持最晦涩的古代格式,直至最前沿。不管它们是由某个标准委员会、社区还是公司设计的

1.2 维基百科介绍

FFmpeg 是一个开放源代码自由软件,可以执行音频和视频多种格式的录影、转换、串流功能[7],包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

1.3 介绍总结

总之,你需要记住,ffmpeg是一个强大的视频、音频、字幕等多种格式的转换工具,涵盖了目前常见的格式,而对于MAD人来说,格式转换更是一个常见的事情,因为大家下出来视频素材,大多都是MKV的封装格式,而像PR这种软件,不能直接导入MKV封装格式的素材,这时候你就需要进行格式转换,可能大多数人会去用小丸,但是小丸是顺应当时的“战狼渣”而产生的,是上个年代的产物,它依赖的也是FFmpeg,且已经“年久失修”,已不再适合继续使用,这时候我们就应该来学习使用FFmpeg了,这里以大家日常会遇到的一个问题举例:(详见\FFmpeg_material\P1_1.3,使用指令FFmpeg -i input.mkv output.mp4

2.FFmpeg的下载

首先打开浏览器,输入网址 https://github.com/GyanD/codexffmpeg/releases 并回车,点击 ffmpeg-6.0-essentials build.7z ,即可下载(这里以Windows举例,其他操作系统类似),只需要解压bin下的即可,解压后重命名为ffmpeg,并将其移动到你想安装的目录下,为了方便全局使用,我们还需要设置一下环境变量

至此,我们想要使用FFmpeg的准备工作就做完了

P2 FFmpeg指令

我根据我自己的使用,列出了我常用的ffmpeg指令,请注意,这里列出的指令基本都可以“举一反三”,每个指令我将举出一至两个示例,请自行观察其中的不同,这样,你就有了“举一反三”的能力,俗话说,授人以鱼不如授人以渔,本教程的目的不在于解决你的一时需求,而是想要教给你使用它的方法,以便解决你的长期需求

1.如何使用FFmpeg指令

打开存放你将要处理的文件的目录>目录内任意区域右键>点击终端/控制台(cmd)>输入指令

2.常用指令分享及示例

2.1 格式转换

2.1.1 指令

2.1.2 批处理指令

2.1.3 示例

详见\FFmpeg_material\P2_2.1.3

使用这个指令,视频的格式并未发生变化,是因为我们用了-c copy ,使其只改变了封装格式,而没有改变视频的编码方式(请注意,格式转换≠编码方式的变化,格式转换只能说明封装格式发生了变化,而不代表编码方式也变了),当你想要改变编码方式时,就需要进行重编码了

2.2 重编码

2.2.1 指令

2.2.2 批处理

2.2.3 示例

详见\FFmpeg_material\P2_2.2.3

这样,你就可以优雅的处理自己的素材了(请注意,每个编码器及封装格式的标准不同,重编码之后,视频质量也会随之发生变化)

2.3 视频的剪切/合并

2.3.1 视频的剪切

指令:

示例:

详见\FFmpeg_material\P2_2.3.1

2.3.2 视频的合并

指令:

在list.txt文件中,对要合并的视频片段进行描述。
内容如下
 file input1.mp4
 file input2.mp4

示例:

详见\FFmpeg_material\P2_2.3.2

2.4 删除字幕轨

这里需要引入一个新的概念,大家应该还不了解,其实字母是分为内封、内嵌和外挂的,内封字幕是指将字幕封装到视频的字幕轨中,所以叫做内封字幕,也叫软字幕,内封字幕相较于内嵌字幕有更大的自由度,比如能调整大小、位置等;而内嵌字幕,其实是把字幕直接”刻“到视频轨中,是无法再进行变动的,在一定程度上,内嵌字幕还是会影响观感的,比如挡住了一部分画面这种问题;外挂字幕是指单独的字幕文件

删除字幕轨只能删除内封字幕

2.4.1 指令

2.4.2 批处理指令

这里使用了-c copy 虽然封装格式发生了变化,但编码方式却没有发生变化,删去-c copy 就会同时进行重编码

2.4.3 示例

这里由于其他格式并不常用(主要是封装格式塞不下去字幕轨,一般也可以直接进行格式转换,也可以删去字幕轨,比如由mkv转成mp4,就会导致字幕轨丢失)所以只举了一个例子

详见\FFmpeg_material\P2_2.4.3

2.5 删除音频轨

2.5.1 指令

2.5.2 批处理指令

2.5.3 示例

详见\FFmpeg_material\P2_2.5.3

2.6 删除视频轨

2.6.1 指令

2.6.2 批处理指令

2.6.3 示例

详见\FFmpeg_material\P2_2.6.3

总结

FFmpeg有着十分强大的功能,从以上这一些也不难看出它的强大,但这仅仅是冰山一角,我所举例的这些指令,都是十分常用的,而且也不局限于我写的,其中的封装格式都可以进行替换,希望对你有所帮助,如果你不想止步于此,可以自行到ffmpeg的官网  ffmpeg.org  自行学习

资源下载: