0%

视频抖动修复 Video Stabilization or Deshake

视频抖动修复 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"
# Way1: strange distortion on margin
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"
# Way2: two step
# ref:
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
# 参考: https://stackoverflow.com/questions/11552565/vertically-or-horizontally-stack-mosaic-several-videos-using-ffmpeg

数据对比:

参数 original stabilizo.com deshake vib.stab
大小/MB 157 57 75 68
用时估计 0 10min 15min 20min
主观体验 抖动明显 较好 抖动较弱,但边缘扭曲 较好

综合来说,stabilizo.com和vib.stab是比较好的工具。后者比较耗时(机器好的话会快很多,我的5代i5实在是拉垮),但可控性较强;一般情况下若网络给力,使用stabilizo.com即可。

-----------------------如有留言,请联系 ljk5403@outlook.com-----------------------