简体   繁体   English

如何避免 ffmpeg filter_complex 覆盖文件的 fps?

[英]How to avoid ffmpeg filter_complex overriding the fps of a file?

I'm fairly new to ffmpeg so apologies if this is a simple problem.我对 ffmpeg 相当陌生,如果这是一个简单的问题,我深表歉意。

I'm trying to tile four 60fps videos using the script below.我正在尝试使用下面的脚本平铺四个 60fps 视频。 It works, but the output is at 25fps.它可以工作,但 output 的速度为 25fps。 When I try to use -r to force it back to 60, it looks like 25fps upsampled to 60, counting duplicated frames when rendering.当我尝试使用 -r 将其强制恢复为 60 时,它看起来像 25fps 上采样到 60,在渲染时计算重复帧。

How can I preserve the original files?如何保存原始文件?

ffmpeg -i vln1.mp4 -i vln2.mp4 -i vla.mp4 -i cello.mp4 -filter_complex "nullsrc=size=2800x2400 [base]; [0:v] setpts=PTS-STARTPTS, scale=2800x600 [A]; [1:v] setpts=PTS-STARTPTS, scale=2800x600 [B]; [2:v] setpts=PTS-STARTPTS, scale=2800x600 [C]; [3:v] setpts=PTS-STARTPTS, scale=2800x600 [D]; [base] [A] overlay=shortest=0 [tmp1]; [tmp1][B] overlay=shortest=0:y=600 [tmp2]; [tmp2][C] overlay=shortest=0:y=1200 [tmp3]; [tmp3][D] overlay=shortest=0:y=1800" -c:v libx264 quartetscore.mp4

Set the frame rate for the nullsrc filter (default is 25 fps):设置nullsrc过滤器的帧速率(默认为 25 fps):

ffmpeg -i vln1.mp4 -i vln2.mp4 -i vla.mp4 -i cello.mp4 -filter_complex "nullsrc=size=2800x2400:rate=60 [base]; [0:v] setpts=PTS-STARTPTS, scale=2800x600 [A]; [1:v] setpts=PTS-STARTPTS, scale=2800x600 [B]; [2:v] setpts=PTS-STARTPTS, scale=2800x600 [C]; [3:v] setpts=PTS-STARTPTS, scale=2800x600 [D]; [base] [A] overlay=shortest=0 [tmp1]; [tmp1][B] overlay=shortest=0:y=600 [tmp2]; [tmp2][C] overlay=shortest=0:y=1200 [tmp3]; [tmp3][D] overlay=shortest=0:y=1800" -c:v libx264 quartetscore.mp4

Or if you want to stack just use the hstack filter instead of nullsrc and multiple overlay:或者,如果您想堆叠,只需使用hstack过滤器而不是 nullsrc 和多个覆盖:

ffmpeg -i vln1.mp4 -i vln2.mp4 -i vla.mp4 -i cello.mp4 -filter_complex "[0:v] setpts=PTS-STARTPTS, scale=2800x600 [A]; [1:v] setpts=PTS-STARTPTS, scale=2800x600 [B]; [2:v] setpts=PTS-STARTPTS, scale=2800x600 [C]; [3:v] setpts=PTS-STARTPTS, scale=2800x600 [D];[A][B][C][D]hstack=inputs=4" -c:v libx264 quartetscore.mp4

See Vertically or horizontally stack (mosaic) several videos using ffmpeg?请参阅使用 ffmpeg 垂直或水平堆叠(马赛克)几个视频? for many more examples.更多示例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM