众所周知现在Github支持上传视频了,想必大家经常遇到文件格式不支持、视频文件过大等问题。要快速解决这两个问题,可以使用FFmpeg(https://ffmpeg.org/)。
软件的安装很简单,FFmpeg是一个命令行程序,装完之后是没有图标显示的。下面是使用方法:

视频格式转换
例如我通过OBS录制得到一个.mkv格式的视频,上传时会提示格式不支持,可以通过以下命令转换为.mp4格式。FFmpeg会根据文件后缀名自动确定正确的视频格式。
# ffmpeg -i <输入文件> <输出文件>
# 可以用,但是比较慢
ffmpeg -i .\limit.mkv .\limit.mp4 以上命令会让FFmpeg先解码视频,然后重新编码并储存到新文件。不仅速度比较慢,而且相当于重新压制了视频,会导致视频质量下降。
将FFmpeg的-codec选项指定为copy可以解决这个问题,这会让FFmpeg使用“流复制”模式运行。只改变容器格式,不编解码。
# 推荐使用的命令,其中 -vcodec 可以简写为 -c:v
ffmpeg -i .\limit.mkv -vcodec copy .\limit.mp4 所以如果要转换视频格式,用上面这个命令就可以了。

压缩视频文件大小
可能与很多人的认知不同,在不改变视频的分辨率、帧率和时长的情况下,是可以改变视频的大小的。只要在编码时调整“码率”就可以了。
# 通过 -b:v <码率> 指定视频码率,没错,也可以同时通过 -b:a 指定音频码率
ffmpeg -i .\limit.mkv -b:v 3000k .\limit.mp4
# 注意,改变码率需要重新编解码,因此不能用 -c:v copy 了! 码率越大,视频文件越大,视频图像质量越高。码率越小,视频文件越小,视频图像质量越低。因此为了让视频不被压缩到模糊,并且又能满足平台的文件大小要求,我们需要选择一个不大不小的码率。这个数值是需要通过公式计算的。
但是精确地计算这个数字很麻烦,我们的目标是控制最终文件大小。好在,FFmpeg可以帮我们做到这一点。
# 下面的 -fs 参数用于控制文件大小,-fs 10M 就是让文件不要超过10M
ffmpeg -i .\limit.mkv -fs 10M .\limit.mp4

Tnze · 2023年12月30日18点23分