Merging\Joining 三个 FFMPEG 命令(Drawtext / -filter_complex overlay / anullsrc=channel_layout)

Merging\Joining three FFMPEG Commands (Drawtext / -filter_complex overlay / anullsrc=channel_layout)

目前我正在使用三个不同的命令创建三个 mp4,仅使用此代码删除两个“临时”视频。

@ECHO OFF
ffmpeg -f lavfi -i color=size=1280x720:duration=5:rate=25:color=Black -vf "drawtext=fontfile='GothamRnd-Book.otf':line_spacing=15:fontsize=15:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text=Stack Exchange" "out1.mp4"
ffmpeg -i "out1.mp4" -i logo.png -filter_complex "overlay=x=10:y=10" "out2.mp4"
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000 -i "out2.mp4" -c:v copy -c:a aac -shortest "out3.mp4"
del "out1.mp4"
del "out2.mp4"
pause

我最接近的是将 anullsrc=channel_layout 移动到 -filter_complex 但这会导致很长的编码,我真的不明白它是怎么回事,因为如果我 ctrl-c取消批次仍会正确创建 out3.mp4

ffmpeg -f lavfi -i color=size=1280x720:duration=5:rate=25:color=Black -vf "drawtext=fontfile='GothamRnd-Book.otf':line_spacing=15:fontsize=15:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text=Stack Exchange" "out1.mp4"
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000  -i "out1.mp4" -i logo.png -filter_complex "overlay=x=10:y=10" "out3.mp4"

这似乎可以简化为不创建临时文件。 但也许这是做到这一点的唯一方法。感谢您的帮助,如果答案很明显,我们深表歉意。

罗里

使用

ffmpeg -f lavfi -i color=s=1280x720:d=5:r=25:color=black -i logo.png -f lavfi -i anullsrc=cl=stereo:d=5:r=48000 -filter_complex "[0]drawtext=fontfile='GothamRnd-Book.otf':line_spacing=15:fontsize=15:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text=Stack Exchange[vid];[vid][1]overlay=x=10:y=10" -c:v libx264 -c:a aac "out3.mp4"