不出意外的又拖了半个月(呲牙.jpg)
注意:本篇仅针对Windows平台,并且可能不是24/25/30fps补帧成60fps的最优方案,更不是唯一方案。
首先需要软件:FFmpeg,K-Lite Codec Pack,SVP,GraphStudio。FFmpeg直接去官网下载Windows build即可,K-Lite理论上只需要Basic,当然更全的不会出问题,SVP可以用免费版,也可以用破解版(免费版可能也支持FFmpeg,未实际测试,Linux不存在付费版),GraphStudio是Windows的自带程序,然而在我这里点Insert Filter就闪退,最后用GraphStudioNext(GitHub链接)代替。
首先我们需要把原始视频拆成纯视频和纯音频两个文件,因为SVP的处理仅针对视频,而且需要在片头补一点时间避免卡顿。使用下面的指令将原始视频拆分成video.mkv(纯视频)和audio.mkv(纯音频),我这里需要上传至B站,所以对音频进行了压缩,也有不压缩的指令:
#注意:若不确定用什么格式那么用mkv大概率不会出问题(mp4不支持flac音频)
#拆分视频
ffmpeg -i origin.mkv -c:v copy -an video.mkv
#拆分音频
ffmpeg -i origin.mkv -vn -c:a copy audio.mkv
#拆分音频并压制为aac编码320k
ffmpeg -i origin.mkv -vn -c:a aac -b:a 320k audio.mkv
接下来我们随便剪切一段视频(最好从video.mkv本身剪)并加到video.mkv的开头(注意这里的10秒可能不是完全精确,切的时候需要用mediainfo看一下):
#从video.mkv开始截取10秒到vcut.mkv
ffmpeg -ss 0 -t 10 -i video.mkv -c:v copy vcut.mkv
创建文件file.txt并写入如下内容供连接使用:
file 'vcut.mkv'
file 'video.mkv'
执行下面的指令连接成最终输入(vin.mkv即为最终输入):
#按顺序连接文件中指定视频
ffmpeg -f concat -i file.txt -c copy vin.mkv
接下来打开graphstudio,选择Graph->Insert File Source(Async.)
并选择相应的vin.mkv,接下来到Graph->Insert Filter...
,依次添加LAV Splitter
、LAV Video Decoder
以及ffdshow raw video filter
,
图中小红圈是可以拖动连线的,最终要连成这个样子:
最后保存为grf文件(选择File->Save As Graph(.GRF)...
或Ctrl+Shift+S),我这里保存为vge.grf,接下来创建vge.avs文件并写入如下内容:
DirectShowSource("vge.grf",fps=59.940,convertfps=true, audio=false)
接下来打开SVP Manager,在设置->控制选项中解除对ffmpeg的限制,关于SVP的视频配置,建议开到最高质量,为影视内容优化(动画优化在动漫中也会出现些许问题),伪影去除我认为高比较好,但有人说高了不好,所以看个人。
接下来进行真正的插帧,我这里用了18.0的crf和veryfast的预设,因为精确裁剪仍然需要压制,直接copy会出现裁剪不精确的情况,如需2pass也最好在裁剪完成后再进行:
#veryfast预设x264编码18crf
ffmpeg -i vge.avs -c:v libx264 -crf 18.0 -preset veryfast -an vout.mkv
接下来我们需要把一开始加的10秒视频切掉,使用mediainfo查看精确的时间:
接下来把输出文件的前10s260ms切掉,并和原音频合并成成品,这里使用crf18.0和veryslow预设压制,如需要2pass建议降低预设快速剪切完后进行,如需要其他压制工具同样建议降低预设,快速生成成品后进行:
#剪切视频并压制
ffmpeg -ss 0:0:10.260 -accurate_seek -i vout.mkv -c:v libx264 -crf 18.0 -preset veryslow -an vfin.mkv
#合并音视频形成成品
ffmpeg -i vfin.mkv -i audio.mkv -c:v copy -c:a copy final.mkv
Views: 153