更好地使用ffmpeg与vidstab和编码2传的方法。

问题描述 投票:0回答:1

我扫描旧的8毫米胶片,所以我有文件夹与一组jpeg。

我将它们转换为电影使用ffmpeg(我选择x264 2通道编码)。

//On all folder that start by 1 I launch the pass1 for x264

for f in 1*/ ; do cd "$f"; ffmpeg -y -r 18 -i img%05d.jpg -c:v libx264 -s 1200x898 -b:v 3000k -pass 1 -an -f mp4 /dev/null; cd ..; done

//On all folder that start by 1 I launch the pass2 x264

for f in 1*/ ; do cd "$f"; ffmpeg -y -r 18 -i img%05d.jpg -c:v libx264 -s 1200x898 -b:v 3000k -pass 2 ../"`echo ${PWD##*/}`.mp4"; cd ..; done

--> 之前,我有一组带有jpeg的文件夹。

1965-FamilyStuff01.jpg,.,img9999.jpg

1965-FamilyStuff02.jpg,...,img9999.jpg

我得到

1965-FamilyStuff01.mp4

1965-FamilyStuff02.mp4

然后,我发现vidstab也需要2个通行证

/ 稳定一个文件夹的每一个视频

mkdir stab;for f in ./*.mp4 ; do echo "Stabilize $f" ; 
ffmpeg -i "$f" -vf vidstabdetect=shakiness=5:accuracy=15:stepsize=6:mincontrast=0.3:show=2 -y -f mp4 /dev/null; 
ffmpeg -i "$f" -vf vidstabtransform=smoothing=30:input="transforms.trf":interpol=linear:crop=black:zoom=0:optzoom=1,unsharp=5:5:0.8:3:3:0.4 -y "stab/$f" 
; done; rm transforms.trf;

但我问自己,也许顺序不正确,或者也许有办法用vidstab在不到4次的时间内完成编码(2次x264编码,然后2次vidstab),或者也许顺序应该改变,以优化电影输出质量)。

encoding ffmpeg x264
1个回答
1
投票

你将需要运行两个命令来使用vidstab。但是,x264不需要两个通道的最佳质量。Two-pass编码是用来针对特定的输出文件大小。只需使用单通道的 -crf 选项。

所以你只需要使用两个命令。

ffmpeg -i input.mp4 -vf "scale=1200:-2,vidstabdetect=shakiness=5:accuracy=15:stepsize=6:mincontrast=0.3:show=2" -f null -
ffmpeg -i input.mp4 -vf "scale=1200:-2,vidstabtransform=smoothing=30:interpol=linear:crop=black:zoom=0:optzoom=1,unsharp=5:5:0.8:3:3:0.4,format=yuv420p" -crf 23 -preset medium output.mp4

查看 FFmpeg Wiki: H.264 更多关于 -crf-preset.

© www.soinside.com 2019 - 2024. All rights reserved.