encoding - 将 ffmpeg 与 vidstab 和编码 2 channel 一起使用的更好方法

标签 encoding ffmpeg x264

我扫描旧的 8 毫米胶片
所以我有一组 jpeg 的文件夹
我使用 ffmpeg 将它们转换为电影(我选择 x264 2 pass encoding)

//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\img1111.jpg,..,img9999.jpg

1965-FamilyStuff02\img1111.jpg,..,img9999.jpg


我得到

1965-FamilyStuff01.mp4

1965-FamilyStuff02.mp4


然后我发现也需要 2 次通过的 vidstab
//稳定文件夹中的每个视频
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 遍的时间内进行编码(x264 编码 2 遍,然后 vidstab 2 遍)
或者也许应该改变顺序以优化电影输出的质量)

最佳答案

您需要运行两个命令才能使用 vidstab。但是 x264 不需要两次通过即可获得最佳质量。两遍编码用于针对特定的输出文件大小。只需对 -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 .

关于encoding - 将 ffmpeg 与 vidstab 和编码 2 channel 一起使用的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61963267/

相关文章:

encoding - 将范围内的两个 float 打包成一个 float

ffmpeg - 如何将多个RTP选项传递给ffmpeg?

ffmpeg : 4K BluRay to 1080p x264

python - 如何正确地对 Gmail API 的 MIMEText 进行 base64 编码?

Python JSON 保留编码

mysql - 使用 mysql 的 Rails LIKE 查询

video - 使用 ffmpeg 解码基本 HEVC 流

ffmpeg - 为什么 frame->pts 增加 20,而不是增加 1?

video - x264/libx264 : Can only one I/P frame to be used as reference for B-frames?

ffmpeg - 为 ubuntu 构建 ffmpeg 未找到可用的 C 编译器