Android 用于5个视频之间交叉衰落的FFmpeg命令。如何管理setpts=PTS-STARTPTS?

Android 用于5个视频之间交叉衰落的FFmpeg命令。如何管理setpts=PTS-STARTPTS?,android,video,ffmpeg,shared-libraries,Android,Video,Ffmpeg,Shared Libraries,这里是FFmpeg的新版本。我正在FFmpeg的控制台中使用和测试 我已经完成了2个视频连接和交叉衰落,并提出了以下问题: 我做了5个视频合并交叉淡入淡出我刚刚做了90%的合并 我只需要管理setpts=PTS-STARTPTS,请查看此pls。 ****请注意,每个输入视频big_buck.mp4长度为5秒****。现在请参见代码中的setpts=PTS-STARTPTS如何在每个视频输入中管理它 我也在variuos论坛上看到了这一点,但我没有发现!!! 谢谢你使用 ffmpeg -i bi

这里是FFmpeg的新版本。我正在FFmpeg的控制台中使用和测试

我已经完成了2个视频连接和交叉衰落,并提出了以下问题: 我做了5个视频合并交叉淡入淡出我刚刚做了90%的合并 我只需要管理setpts=PTS-STARTPTS,请查看此pls。

****请注意,每个输入视频big_buck.mp4长度为5秒****。现在请参见代码中的setpts=PTS-STARTPTS如何在每个视频输入中管理它

我也在variuos论坛上看到了这一点,但我没有发现!!! 谢谢你使用

ffmpeg -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i 
big_buck.mp4 -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v1]; \
 [1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2]; 
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3]; 
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4]; 
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5]; 
[v1][v2]overlay[v12]; [v12][v3]overlay[v123]; [v123][v4]overlay[v1234]; [v1234][v5]overlay,format=yuv420p[v]" \
-map [v]  result.mp4
必须修改PTS,使每个新剪辑在当前剪辑组合结束前1秒开始,即第三个剪辑应在8秒时开始淡入,因为前两个剪辑的组合为9秒(第一个剪辑的4秒+第二个剪辑的1秒过渡+第二个剪辑的4秒)

您不需要淡出,因为下一个剪辑将在顶部淡入。只有在需要切割时才需要concat


使用音频交叉淡入:

ffmpeg -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i 
big_buck.mp4 -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v1]; \
 [1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2]; 
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3]; 
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4]; 
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5]; 
[v1][v2]overlay[12]; [12][v3]overlay[123]; [123][v4]overlay[1234]; [1234][v5]overlay,format=yuv420p[v]; \
[1][2]acrossfade=d=1[a12]; [a12][3]acrossfade=d=1[a123]; [a123][4]acrossfade=d=1[a];" \
-map [v] -map [a] result.mp4
使用

必须修改PTS,使每个新剪辑在当前剪辑组合结束前1秒开始,即第三个剪辑应在8秒时开始淡入,因为前两个剪辑的组合为9秒(第一个剪辑的4秒+第二个剪辑的1秒过渡+第二个剪辑的4秒)

您不需要淡出,因为下一个剪辑将在顶部淡入。只有在需要切割时才需要concat


使用音频交叉淡入:

ffmpeg -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i 
big_buck.mp4 -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v1]; \
 [1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2]; 
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3]; 
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4]; 
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5]; 
[v1][v2]overlay[12]; [12][v3]overlay[123]; [123][v4]overlay[1234]; [1234][v5]overlay,format=yuv420p[v]; \
[1][2]acrossfade=d=1[a12]; [a12][3]acrossfade=d=1[a123]; [a123][4]acrossfade=d=1[a];" \
-map [v] -map [a] result.mp4

看见这显示了交叉淡入淡出的方法。您必须将叠加输出与第三个视频连接起来。请参阅。这显示了交叉淡入淡出的方法。您必须将覆盖输出与第三个视频合并。视频之间没有交叉淡入淡出(视频之间淡入淡出)[作为输出结果检查]。它只是直接合并视频。。你能编辑它吗@穆尔维耶更正了。淡入淡出后应更改时间戳。或者,可以更改淡入淡出的
st
值。@Mulvya:当我运行您的命令时,出现了一个小问题。输出视频仅为5秒,而不是25秒(每个视频5秒)。您能告诉我如何修复它吗?运行您的命令,添加
-report
并链接到生成的日志文件。当我尝试使用此命令时,我发现
没有这样的筛选器:“”初始化复杂筛选器时出错。无效参数
。我正在使用第二个命令,替换我自己的输入。可能会发生什么?视频之间没有交叉淡入淡出[作为输出结果检查]。它只是直接合并视频。。你能编辑它吗@穆尔维耶更正了。淡入淡出后应更改时间戳。或者,可以更改淡入淡出的
st
值。@Mulvya:当我运行您的命令时,出现了一个小问题。输出视频仅为5秒,而不是25秒(每个视频5秒)。您能告诉我如何修复它吗?运行您的命令,添加
-report
并链接到生成的日志文件。当我尝试使用此命令时,我发现
没有这样的筛选器:“”初始化复杂筛选器时出错。无效参数
。我正在使用第二个命令,替换我自己的输入。可能会发生什么?