我刚开始学习FFmpeg。我有代码(如下所示(,但它什么也没做。
fmpeg -i videoplayback.mp4 -filter_complex "[1:v]trim=start=0:end=1,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[intro1];
[1:v]trim=start=1:end=123.39,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[main1];
[1:v]trim=start=123.39:end=124.39,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[end1];
[intro1]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[intro1];
[end1]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[end1];
[intro1][main1][end1][output];
[a:1][audio]; -vcodec libx264 -map "[output]" -map"[audio]" "output.mp4"
-
fmpeg
应该是ffmpeg
. - 您只有一个输入
[1:v]
因此应该[0:v]
输入(它从 0 开始计数(。
淡 - 入淡出不需要 Alpha,因为您没有重叠或混合帧。 结束淡入淡出
- 需要淡出(而不是淡入(。 不能在筛选器
- 图中重复使用筛选器输出标签。
- 您的某些筛选器链可以组合在一起。
- 您的某些标签未与过滤器关联(您似乎忘记使用 concat 过滤器(。
- 您可以在末尾添加比例和 setsar,而不是将它们用于每个段。
- 将最后一个
;
替换为"
。 - 您没有正确映射音频。
- 流式复制(重新复用(音频。
例:
ffmpeg -i videoplayback.mp4 -filter_complex "[0:v]trim=end=1,setpts=PTS-STARTPTS,fade=t=in:d=1[intro];[0:v]trim=start=1:end=123.39,setpts=PTS-STARTPTS[main];[0:v]trim=start=123.39,setpts=PTS-STARTPTS,fade=t=out:d=1[end];[intro][main][end]concat=n=3:v=1:a=0,scale=480x360,setsar=16/9[v]" -map "[v]" -map 0:a -c:a copy output.mp4