ffmpeg连续和同时缩放?

Pet*_*kov 1 linux ffmpeg

我有两个ffmpeg命令:

ffmpeg -i d:\1.mp4 -i d:\1.mp4 -filter_complex "[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" d:\3.mp4

ffmpeg -i d:\1.mp4 -vf scale=320:240 d:\3.mp4

如何同时使用它们?

Sve*_*son 9

对于后代: 如果输入源具有不同的大小(这是您需要在组合之前进行缩放的主要原因),则接受的答案不起作用.

你需要做的是首先缩放然后将视频输出传输到concat过滤器,如下所示:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]scale=1024:576:force_original_aspect_ratio=1[v0]; [1:v]scale=1024:576:force_original_aspect_ratio=1[v1]; [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map [v] -map [a] output.mp4
Run Code Online (Sandbox Code Playgroud)

今天遇到了这个问题并且正在拉我的头发好三个小时试图解决这个问题,不幸的是,接受的答案没有按照评论中的说明起作用.

  • 我可以根据第一个视频尺寸缩放第二个视频,因为我有各种视频,并且我想在第一个视频中添加简单的图像。 (2认同)

Pet*_*kov 6

ffmpeg -i d:\1.mp4 -i d:\2.mp4 -filter_complex "concat=n=2:v=1:a=1 [v] [a]; \
[v]scale=320:200[v2]" -map "[v2]" -map "[a]" d:\3.mp4
Run Code Online (Sandbox Code Playgroud)

首先,我们将所有内容和管道结果连接起来[v] [a](请参阅filtergraph语法文档 - 来自concat过滤器的输出).接下来我们采取[v],缩放和输出[v2],最后我们采取[v2]并将[a]其复制到d:\3.mp4文件.

  • 我也尝试过;`ffmpeg -i video720p.mp4 -i video1080p.mp4 -filter_complex "concat=n=2:v=1:a=1 [v] [a]; \ [v]scale=1280:720[v2]" -map "[v2]" -map "[a]" videoResult.mp4` 但我收到此错误:`输入链接 in1:v0 参数(大小 1920x1080,SAR 0:1)与相应的输出链接 in0:v0 参数不匹配( 1280x720,SAR 0:1) [Parsed_concat_0 @ 0x1e2d1a0] 无法在 Parsed_concat_0 上配置输出焊盘` (2认同)