在AI和CG领域其实经常可以看到FFMPEG的影子,该工具可以轻松的将各种类型的媒体文件格式相互转换。在国内较为知名的格式工厂其实核心部件就是FFMPEG,只是给他加了个UI而已。对于AI领域该工具可以快速通过CMD命令行、C++、Python等编程语言快速后台调用批量转换格式,非常实用。

FFmpeg是一款免费、开源的跨平台音视频处理工具,它包括了广泛的音视频编码、解码、转换、过滤和流化的功能。FFmpeg可以在命令行中使用,也可以通过在其他应用程序中集成它的库来使用。由于其高度可定制的性质和广泛的应用,FFmpeg已成为许多领域中的标准工具,如视频编辑、转码、流媒体、广播等。同时,FFmpeg还支持大量的音视频格式和编解码器,包括常见的MP4、AVI、MKV等格式以及H.264、H.265、VP9等编解码器。

安装教程

关于FFMPEG的安装可以分为两种方法,一种是全自动安装,另一种是手动下载后指定环境变量来安装。

站长本人还是比较推荐通过优雅的方式来安装的,因为这实在是太方便了。

注意:本文中所说的CMD窗口打开方式为:您按住键盘上的微软徽标别松手+键盘R键,然后在弹出的窗口内输入cmd并按下回车,此时将会自动弹出CMD窗口,以下不做过多赘述。

优雅安装

安装要求:

  • Windows10系统1809以上版本
    • Win7或Win10系统版本低于1809都将无法使用
  • Windows11系统
    • 已内置
  • 魔法上网
    • 建议开全局魔法模式

安装教程

什么是优雅?优雅就是您可以通过一行CMD即可完成所有你想要的东西。

注意:使用如果您想在在自己的电脑里使用winget命令,那么需要您按住键盘上的微软徽标别松手+键盘R键,然后在弹出的窗口内输入cmd并按下回车,在其中粘贴如下命令。

winget install ffmpeg -e --rainbow
FFmpeg|媒体格式转换工具-openAI维基百科

至此,安装完成,我们已经完成了FFMPEG的安装,但是目前还无法正常在CMD窗口内调用,因为此时的FFMEG还没有被添加至系统的环境变量中。

我们将如下命令复制粘贴至CMD窗口内执行,将会自动识别winget下载后的FFMPEG路径。

注意:必须是以管理员身份方式运行的CMD窗口,不然必出错,而且会导致你本身的系统环境错乱。

powershell -Command "[System.Environment]::SetEnvironmentVariable('Path', [System.Environment]::GetEnvironmentVariable('Path', 'User') + ';%LocalAppData%\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-6.0-full_build\bin', 'User')"

执行上面的命令之后,会自动关闭CMD窗口,不用担心。这是因为环境变量更改之后是需要重启Shell才能生效的,所以会自动关闭,重新打开之后输入ffmpeg即可看到已经能够正常使用啦。

手动安装

手动安装需要自行下载FFmpeg,本站提供两种下载方式。

官网下载

本站下载之后,将该文件存放至D盘的dataddd\FFmpeg目录内,为了您可以快捷添加环境变量,建议您直接复制如下命令,然后在CMD窗口内执行。

注意:必须是以管理员身份方式运行的CMD窗口,不然必出错。

if not exist D:\dataddd\FFmpeg mkdir D:\dataddd\FFmpeg

执行该命令之后,将会在D盘自动创建dataddd\FFmpeg目录,您将下载好的ffmpeg.exeffplay.exeffprobe.exe这3个文件移动至该目录内。

操作完成后的路径应该与下面的结构一致:

D:\dataddd\FFmpeg

└─ffmpeg.exe

└─ffplay.exe

└─ffprobe.exe

环境变量

此时需要您在CMD窗口内执行如下命令,即可自动添加环境变量。

注意:必须是以管理员身份方式运行的CMD窗口,不然必出错。

powershell -Command “[System.Environment]::SetEnvironmentVariable(‘Path’, [System.Environment]::GetEnvironmentVariable(‘Path’, ‘User’) + ‘;D:\dataddd\FFmpeg’, ‘User’)”

安装完成

使用教程

FFmpeg 是一个开源的音视频处理工具,拥有丰富的功能和命令行接口。您可以通过在CMD中使用简单的命令行来实现您想的功能。

以下是 FFmpeg 常用的一些方法:

示例:input是您的输入文件路径,output为您想保存的文件路径。例如我想使用示例1中的视频转功能,将MP4转为AVI格式,假如当前想转换的视频路径为D:\openAI.mp4,想要保存的的路径为D:\openAI.avi。那么完整的命令应该为ffmpeg -i D:\openAI.mp4 D:\openAI.avi

  1. 视频转换
    将视频文件从一种格式转换为另一种格式。例如,将 .mp4 格式的视频转换为 .avi 格式的视频。
ffmpeg -i input.mp4 output.avi
  1. 视频剪辑
    剪辑视频文件的某一部分。例如,从视频的第 10 秒开始剪辑,持续时间为 5 秒。
ffmpeg -ss 00:00:10 -t 00:00:05 -i input.mp4 output.mp4
  1. 视频旋转
    旋转视频文件。例如,将视频逆时针旋转 90 度。
ffmpeg -i input.mp4 -vf "transpose=2" output.mp4
  1. 视频拼接
    将多个视频文件拼接成一个视频。例如,将input1.mp4和input2.mp4拼接成output.mp4
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "concat=n=2:v=1:a=0" output.mp4
  1. 视频截图
    从视频中截取一张静态图像。例如,从视频的第 5 秒处截取一张图像。
ffmpeg -ss 00:00:05 -i input.mp4 -vframes 1 output.jpg
  1. 音频提取
    从视频文件中提取音频。例如,从视频文件input.mp4中提取音频到output.mp3
ffmpeg -i input.mp4 -vn -acodec copy output.mp3
  1. 音频转换
    将音频文件从一种格式转换为另一种格式。例如,将.wav格式的音频文件转换为.mp3格式的音频文件。
ffmpeg -i input.wav -vn -ar 44100 -ac 2 -ab 192k output.mp3
  1. 音频合并
    将多个音频文件合并成一个音频文件。例如,将input1.mp3和input2.mp3合并成output.mp3
ffmpeg -i "concat:input1.mp3|input2.mp3" -acodec copy output.mp3

这些是FFmpeg中常用的一些方法,但实际上FFmpeg的功能非常丰富,可以实现更多的音视频处理需求。