我正在尝试使用绘图文本应用标题,该标题应在视频结束前一秒消失:
ffmpeg -i input.mp4 -vf "drawtext=enable='between(t,0,5)':fontfile=font.ttf:text='Some caption':x=60:y=640:fontsize=40:fontcolor=#[email protected] /cdn-cgi/l/email-protection" -vcodec libx264 -crf 27 -preset ultrafast -strict -2 -acodec copy output.mp4
问题是我事先不知道视频长度。我尝试过使用“ Between(t,0,-1)”,但它不起作用,标题永远不会显示。
任何人都知道是否有办法做到这一点,而不必先打开视频检查长度,然后才绘制标题?
提前致谢!
FFmpeg 不会将流持续时间传递给过滤器,因此必须以迂回方式完成。
FFmpeg 有一个 sseof 函数,可以从文件末尾开始查找。它还有一个 copyts 选项来维护时间戳。因此,我们加载输入两次,一次是完整输入,另一次是最后一秒。然后我们在整个第一个输入上绘制文本,但覆盖第二个输入的最后一秒,由于保留的时间戳,该文本将被就地烧毁。
ffmpeg -copyts -i input.mp4 -sseof -1 -i input.mp4 -filter_complex "[0]drawtext=fontfile=font.ttf:text='Some caption':x=60:y=640:fontsize=40:fontcolor=#[email protected] /cdn-cgi/l/email-protection[txt];[txt][1]overlay" -vcodec libx264 -crf 27 -preset ultrafast -acodec copy output.mp4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)