gpt4 book ai didi

ffmpeg - 使用 FFMPEG 以所需角度在视频上叠加文本

转载 作者:行者123 更新时间:2023-11-30 16:18:45 25 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 在视频上覆盖一些文本。我可以通过以下命令覆盖文本。

ffmpeg -i input1.mp4 -filter_complex "[0:v]transpose=2[anticlockwiserotated];[anticlockwiserotated]drawtext=fontfile=../../public/fonts/Roboto-Regular-webfont.ttf: text='Test Text':x=100: y=50: fontsize=36: fontcolor=white:[textapplied];[textapplied]transpose=1" output_video.mp4

它允许我仅水平或垂直叠加。

但我想在它后面附加一些角度,例如 45 度。

为此,如果我将命令修改为

ffmpeg -i input1.mp4 -filter_complex "[0:v]rotate=45*PI/180[anticlockwiserotated];[anticlockwiserotated]drawtext=fontfile=../../public/fonts/Roboto-Regular-webfont.ttf: text='Test Text':x=100: y=50: fontsize=36: fontcolor=white:[textapplied];[textapplied]rotate=315*PI/180" output_video.mp4

通过这个,我得到的叠加视频为:

enter image description here

因为在第一个视频中,我将视频旋转 45 度,附加文本并将其恢复到原始位置。所以我失去了边界。

请建议我在视频上叠加具有所需角度的文本的最佳方法。

提前致谢。

最佳答案

基本方法是在空白 Canvas 上生成文本,然后为文本生成 Alpha 图层,旋转结果并将其覆盖在主视频上。

在下面的命令中,a 应替换为角度。绘制文本的坐标将在叠加层中使用。根据文本的长度,如果逆时针旋转,某些文本可能会被剪裁。因此检查并相应地调整 Y 偏移。

ffmpeg -i input1.mp4 -filter_complex 
"color=black:100x100[c];
[c][0]scale2ref[ct][mv];
[ct]setsar=1,drawtext=fontfile=../../public/fonts/Roboto-Regular-webfont.ttf:
text='Test Text':fontsize=36:fontcolor=white,split[text][alpha];
[text][alpha]alphamerge,rotate=a:ow=rotw(a):oh=roth(a):c=black@0[txta];
[mv][txta]overlay=x='min(0,-H*sin(a))+100':y='min(0,W*sin(a))+50':shortest=1"
output_video.mp4

关于ffmpeg - 使用 FFMPEG 以所需角度在视频上叠加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55816999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com