Avconv 和 "Unable to find a suitable output format" 错误

Avconv and "Unable to find a suitable output format" error

您好,我想在 .mp4 上添加一些文本。

我正在尝试这个:

shell_exec("avconv -i input.mp4 drawtext=\"fontfile=OpenSans-Italic.ttf: text='Test Text'\" output.mp4").

但是我明白了

Unable to find a suitable output format for 'drawtext=fontfile=OpenSans-Italic.ttf: text='Test Text'' drawtext=fontfile=OpenSans-Italic.ttf: text='Test Text': Invalid argument

知道发生了什么吗?

你的论点有误drawtext。它是一个过滤器,但您需要在它之前添加 -vf 以便 libav 能够理解它是什么。总体而言,您的命令应该是:

shell_exec("avconv -i input.mp4 -vf drawtext=\"fontfile=OpenSans-Italic.ttf: text='Test Text'\" output.mp4")

这看起来像 php 所以我也建议你检查一下:

  • Read/write权限,
  • OpenSans-Italic.ttf文件的路径,
  • 执行路径与文件路径
  • libav 是否使用 --enable-libfreetype 选项编译(drawtext 过滤器需要)

来源:https://libav.org/documentation/libavfilter.html#drawtext