如何使用ffmpeg在AVI视频中添加文本?

3

我正在尝试使用Ubuntu 12.04上的ffmpeg在视频底部放置简单文本。我尝试了几个地方建议的以下命令:

ffmpeg -i input.avi -vf drawtext="fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf:text='Text to write':fontsize=20:fontcolor=black:x=100:y=100" output.avi

但是每次我都会得到以下错误:
ffmpeg version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
  built on Jun 12 2012 16:37:58 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, avi, from 'input.avi':
  Duration: 04:09:09.66, start: 0.000000, bitrate: 480 kb/s
    Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 320x240 [PAR 1:1 DAR 4:3], 45 tbr, 45 tbn, 45 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 64 kb/s
[buffer @ 0x860d5a0] w:320 h:240 pixfmt:yuv420p
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
[ac3 @ 0x8607a00] invalid bit rate
Output #0, avi, to 'output.avi':
    Stream #0.0: Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 45 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, flt, 200 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Error while opening encoder for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height

感谢您的帮助。

感激您的协助。


@Banthar 它解决了问题。谢谢。不过文字出现在中间,有没有办法将它放在底部?谢谢。 - qliq
这在Windows上对我有用,通过替换字体地址。只需要将字体复制到视频文件旁边并使用它。还需要在我们的视频宽度和高度中使用x和y。 - saber tabatabaee yazdi
1个回答

6
文档显示您可以使用其他参数与xy一起,例如输入视频的高度和宽度以及文本的宽度和高度。要将文本放在底部,一种方法是y=main_h-text_h。如果您想在底部留有一点填充,则可以使用y=main_h-(text_h*2)。要水平居中,请使用x=(main_w/2-text_w/2)

请问“main_w”和“main_h”如何动态设置,即由用户设置? - axita.savani
@axita.savani 请参见 https://stackoverflow.com/a/54909273/1109017 和 https://stackoverflow.com/a/11059494/1109017。 - llogan
好的...谢谢您 @llogan - axita.savani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接