框架尺寸

框架尺寸

我正在使用 fluent-ffmpeg for NodeJS 来合并许多(50)个视频。fluent-ffmpeg 生成的命令是:

ffmpeg -i ./temp/1426738868618B778176A-254A-47E5-80D4-AF9E2DB836C6.mp4 -i 
./temp/14267388686185827E1A1-20CC-41A7-B121-4BE088580062.mp4 -i 
./temp/142673886861811F5BEB8-6567-4771-9F73-E13D47CE6773.mp4 -i
./temp/1426738868618C72B0345-739B-4243-B739-3BEF718EDE35.mp4 -i
./temp/1426738868618F37E694A-7433-4FB5-A977-0CF28913EDF8.mp4 -i
...
./temp/142673886861869535AA6-7A08-4447-9747-A40A28C4D57C.mp4 -i
./temp/1426738868618AAD398BC-3259-4087-9535-26D73EA5209F.mp4 -i
./temp/1426738868618193CF9E5-B0FB-4B60-B273-22614C376185.mp4 -i
./temp/142673886861875ABFC64-D0BA-429F-A53E-2088F90DD6E4.mp4 
-i./temp/142673886861841290364-42E0-4159-9A75-70528B8D471E.mp4 
-y -filter_complex concat=n=50:v=1:a=1 -r 29.97 -vcodec libx264 -s 568x320 -flags +loop 
-b 400k -bufsize 4M -bt 256k -refs 1 -coder 0 -me_range 16 -subq 4 
-partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 
-level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 
-i_qfactor 0.71 -acodec aac -strict experimental -ab 80k -ar 48000 -ac 2 
-strict experimental -f mp4 -metadata:s:v:0 rotate=90 ./temp/1426738868618.mp4

但是我收到了错误:

[Parsed_concat_0 @ 0x7faba20366a0] Input link in31:v0 parameters (size 1280x720, SAR 0:1) do not match the corresponding output link in0:v0 parameters (360x480, SAR 0:1)
[Parsed_concat_0 @ 0x7faba20366a0] Failed to configure output pad on Parsed_concat_0

我研究过它,我必须做一些类似的事情"setsar=1",但是当我将它添加到filter_complex我得到完全相同的错误。

编辑:这是该命令的完整输出http://pastebin.com/Sk2y3WQr

答案1

框架尺寸

来自concat 过滤器文档

所有对应的流在所有段中都必须具有相同的参数;过滤系统将自动为视频流选择通用的像素格式,为音频流选择通用的采样格式、采样率和通道布局,但其他设置(例如分辨率)必须由用户明确转换

可以接受不同的帧速率,但会导致输出的帧速率变化;请确保配置输出文件来处理它。

您的输入在帧大小上有所不同,因此您必须使用比例过滤器形成一个共同的框架尺寸。

时间戳

也来自同一文档:

为了使此过滤器正常工作,所有段必须从时间戳 0 开始。

使用设定点过滤器去做这个。

例子

部分过滤示例可能如下所示:

[0:v]scale=360x480,setpts=PTS-STARTPTS[v0];
[1:v]scale=360x480,setpts=PTS-STARTPTS[v1];
[49:v]scale=360x480,setpts=PTS-STARTPTS[v49];
[v0][0:a][v1][1:a]…[v49][49:a]concat=n=50:v=1:a=1

使用预设

帮自己一个忙,使用编码预设。没有理由声明这么多选项。预设会处理它们。这就是它们的用途。

您可以删除:

-flags +loop -bt 256k -refs 1 -coder 0 -me_range 16 -subq 4 
-partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 
-level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 
-i_qfactor 0.71

将这些选项替换为-preset faster您喜欢的任何预设。请参阅FFmpeg Wiki:H.264 视频编码指南了解更多信息。

相关内容