视频抖动修复 Video Stabilization or Deshake
当然用Pr或者 Davinci Resolve 肯定能办到,但难免有点杀鸡焉用牛刀。在此列举几种笔者发掘的方法。急用可直接拉到底看最佳方案。
Online
https://www.stabilizo.com/,可以免费处理500M以下的文件,感觉挺快的,效果较好。无需科学上网(当然科学上网速度应该会有提升)。
ffmpeg
deshake
较为快速。但快速大幅度抖动时,多出的边缘会有奇怪的镜像补全。
1 2 3 4 5 6 7 8
| deshakemov(){ file=$1 echo $file resultFile=${file%.*}"_deshaked.mp4" ffmpeg -i $file -hide_banner -map_metadata 0 -movflags use_metadata_tags -vf deshake $resultFile touch -r $file $resultFile }
|
vid.stab
参考这篇文章,先分析后修复。效果较好。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| deshakemov(){ file=$1 echo $file resultFile=${file%.*}"_deshaked.mp4" ffmpeg -i $file \ -vf vidstabdetect=stepsize=32:shakiness=10:accuracy=10:result=transforms.trf -f null - ffmpeg -i $file \ -vf vidstabtransform=input=transforms.trf:zoom=0:smoothing=10,unsharp=5:5:0.8:3:3:0.4 \ -vcodec libx264 -tune film -preset slow \ $resultFile rm transforms.trf touch -r $file $resultFile }
|
效果对比
具体效果可参考b站视频:
修复抖动对比:黄腰柳莺鸣
修复抖动对比·原始版本:黄腰柳莺鸣
修复抖动对比·stabilizo.com:黄腰柳莺鸣
修复抖动对比·ffmpeg/deshake:黄腰柳莺鸣
修复抖动对比·ffmpeg/vib.stab:黄腰柳莺鸣
顺便放一下并排组合视频的代码:
1 2 3 4 5 6 7 8
| ffmpeg -i DSCN8805.MOV -i DSCN8805_stabilizo.mov -i DSCN8805_deshaked.mp4 -i DSCN8805_vidstab_macos_i5-5350U.mp4 -filter_complex \ "[0]drawtext=text='original':fontsize=50:x=(text_w)/2:y=(text_h)/2[v0]; [1]drawtext=text='stabilizo.com':fontsize=50:x=(text_w)/2:y=(text_h)/2[v1]; [2]drawtext=text='deshake':fontsize=50:x=(text_w)/2:y=(text_h)/2[v2]; [3]drawtext=text='vib.stab':fontsize=50:x=(text_w)/2:y=(text_h)/2[v3]; [v0][v1][v2][v3]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0[v]" \ -map "[v]" stack.mp4
|
数据对比:
大小/MB |
157 |
57 |
75 |
68 |
用时估计 |
0 |
10min |
15min |
20min |
主观体验 |
抖动明显 |
较好 |
抖动较弱,但边缘扭曲 |
较好 |
综合来说,stabilizo.com和vib.stab是比较好的工具。后者比较耗时(机器好的话会快很多,我的5代i5实在是拉垮),但可控性较强;一般情况下若网络给力,使用stabilizo.com即可。