gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:50:44 24 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应该换成角度。 drawtext 的坐标在覆盖中使用。根据文本的长度,如果您逆时针旋转它,其中一些可能会被剪掉。因此检查并相应地调整 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/38306321/

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