使用 FFmpeg 仅在单个帧上绘制文本、绘制框或覆盖
我在 FFmpeg 上使用 drawtext 和 drawbox avfilters,这是人类已知的文档记录最差的两个函数。
我正在努力弄清楚是否以及如何仅在单个帧上使用它们,即在第 22 帧上绘制文本。
当前命令:
ffmpeg -i test.wmv -y -b 800k -f flv -vcodec libx264 -vpre default -s 768x432 \
-g 250 -vf drawtext="fontfile=/home/Cyberbit.ttf:fontsize=24:text=testical:\
fontcolor=green:x=100:y=200" -qscale 8 -acodec libfaac -sn -vstats out.flv
提到的两个元素文档中的是n和t。但是,我似乎只能在 x 和 y 中使用它们。不是文本形式,甚至不是其他参数。
任何帮助或 FFmpeg 指导将不胜感激。
I'm using the drawtext and drawbox avfilters on FFmpeg, two of the most poorly documented functions known to man.
I'm struggling to work out if and how I can use them on only a single frame, i.e., drawtext on frame 22.
Current command:
ffmpeg -i test.wmv -y -b 800k -f flv -vcodec libx264 -vpre default -s 768x432 \
-g 250 -vf drawtext="fontfile=/home/Cyberbit.ttf:fontsize=24:text=testical:\
fontcolor=green:x=100:y=200" -qscale 8 -acodec libfaac -sn -vstats out.flv
Two elements mentioned in the documentation are n and t. However, I only seem to be able to use them in x and y. Not in text or even as other parameters.
Any help or FFmpeg guidance would be gratefully received.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 FFmpeg 始终让您保持警惕的一个很好的例子中,这对于
drawtext
和
drawbox
非常痛苦。关键是
drawtext
包含draw
参数:因此,仅在第 22 帧上显示文本:
drawbox
没有draw
参数,并且没有通用方法来模拟它,因此您只能执行诸如提取部分内容之类的操作您想要将盒子放在上面的视频,然后用偏移量覆盖它:(尽管这将使
boxed.flv
的最后一帧永远可见)或将视频分成多个部分,在正确的部分,然后重新组合。In a great example of FFmpeg always keeping you on your toes, this is trivial to do with
drawtext
and extremely painful withdrawbox
.The key is that
drawtext
includes thedraw
parameter:So to only show text on frame 22:
drawbox
has nodraw
parameter, and there's no general way to emulate it, so you're left doing something like extracting the portion of video that you want to put the box on and then overlaying it with an offset:(though this will leave the last frame of
boxed.flv
visible forever) or breaking up the video into multiple pieces, drawing on the proper pieces, and then recombining.