什么是FFmpeg?
FFmpeg是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流、过滤和播放几乎所有人类和机器创建的东西。它支持最模糊的古老格式,直到最前沿(来自FFmpeg 中文网)。可以理解为,FFmpeg是专门用于音频和视频的编码、解码、转码等操作的开源软件。与其他音频、视频处理软件不同的是,ffmpeg使用的是命令行。
FFmpeg的Windows版本的下载
在Windows系统,进入FFmpeg下载页面: https://www.ffmpeg.org/download.html
不要点击Download Source Code,因为下载的是源代码。
点击页面左下角的Windows图形按钮,选择Windows EXE Files,这里选择第二个--Windows builds by BtbN,
进入FFmpeg build的github页面https://github.com/BtbN/FFmpeg-Builds/releases,最新的release点击展开Show all xx assets,
展开之后选择版本,点击下载。这里选择ffmpeg-n8.0-latest-win64-gpl-8.0.zip
把FFmpeg添加到Windows环境变量
在D盘创建文件夹ffmpeg,把下载的文件复制到目录D:\ffmpeg,并解压,点击查看解压出来的目录
可以看到ffmpeg的可执行程序在目录D:\ffmpeg\ffmpeg-8.0-essentials_build\bin,点击进入这个目录之后,点击上图搜索框区域,复制路径。
在桌面右键点击此电脑-属性
在弹出的页面点击高级系统设置
在弹出的系统属性页面点击 环境变量 按钮
在弹出的环境变量弹窗中,在系统变量区域上下滑动,点击选中Path, 点击编辑按钮
在弹出的编辑环境变量弹窗中,点击新建按钮
点击新建之后,可以看到所有其他环境变量下面的一行可以编辑
这时,粘贴之前复制的路径,如D:\ffmpeg\ffmpeg-8.0-essentials_build\bin,然后点击确定按钮
这时,编辑环境变量弹窗已经关闭。点击环境变量弹窗的确定按钮
这时,环境变量弹窗已经关闭。点击系统属性的确定按钮,系统属性弹窗关闭
打开命令提示符,输入命令ffmpeg, 如果有以下信息输出,表示环境变量配置成功。
命令提示符切换到视频文件所在目录
首先要用视频截取软件(如QQ影音)截取出需要的视频片段,命名为input,如这里的input.mp4
右键点击视频文件,在弹出的菜单中点击属性
查看文件位置,并复制路径,这里是C:\Users\Administrator\Desktop,然后关闭属性弹窗
在Windows底部的搜索框,搜索命令提示符,然后在右侧点击 以管理员身份运行
打开命令提示符之后,使用cd命令切换到文件目录:cd [文件目录]
如cd C:\Users\Administrator\Desktop, 点击Enter键运行
如果是切换到另外一个盘, 这时从C盘切换到D盘
cd D:\video
按钮Enter键执行之后,发现没有反应
解决办法是输入要[切换到的盘符]:
这里是要输入 D:
或者d:
按Enter键执行之后,发现已经切换到想要切换的目录,也就是截取的视频存放的目录
FFmpeg命令使用
命令提示符切换到截取的视频所在目录之后,接下来,只要使用ffmpeg命令进行转码就可以
这时需要注意,要转码的视频需要重命名为input.mkv、input.webm
、input.mp4这种形式
mkv转mp4,视频H264、音频AAC编码(微信视频号要求视频是视频H264、音频AAC编码)
ffmpeg -i input.mkv -c:v libx264 -c:a aac -strict experimental output.mp4
截取webm视频片段并转为gif
ffmpeg -i input.webm -ss <开始时间> -t <时长> -vf "fps=<帧率>,scale=<宽度>:<高度>" output.gif
ffmpeg -i input.webm -ss 00:00:42 -t 8 -vf "fps=60,scale=2560:1328" output.gif
整个mp4转gif
ffmpeg -i input.mp4 -vf "fps=30,scale=948:1134" output.gif
gif文件压缩到10M以内,无脑压缩(腾讯云开发者社区要求图片大小在10M以内)
ffmpeg -i input.gif -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -pix_fmt yuv420p -r 15 -b:v 2M -movflags +faststart -fs 10M output.gif
使用ffmpeg用比较精细的方式压缩gif文件大小的思路
(1)减少动画时长,这一步在截取视频的时候操作,减小截取的视频的长度。可以使用QQ影音等工具截取视频
(2)减小帧数值,即减小fps数值,可能是24-60帧设置减小到5-8帧
ffmpeg -i input.mp4 -vf "fps=30,scale=1024:800" output.gif
ffmpeg -i input.mp4 -vf "fps=5,scale=1024:-1:flags=lanczos" output.gif
这里第2个参数为-1表示高度自适应,flags=lanczos表示采用lanczos算法进行重采样,以获得更好的质量
(3)减小视频分辨率
ffmpeg -i input.mp4 -vf "fps=5,scale=1024:-1:flags=lanczos" output.gif
ffmpeg -i input.mp4 -vf "fps=5,scale=800:-1:flags=lanczos" output.gif
ffmpeg -i input.mp4 -vf "fps=5,scale=480:-1:flags=lanczos" output.gif
ffmpeg -i input.mp4 -vf "fps=5,scale=360:-1:flags=lanczos" output.gif
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。