本文为前段时间所发的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 自行学习