gpt4 book ai didi

ffmpeg 命令行行为随机性

转载 作者:行者123 更新时间:2023-12-04 23:29:24 25 4
gpt4 key购买 nike

我正在尝试在 ffmpeg 中使用 -vf drawtext 函数。

以下命令运行成功

ffmpeg -y -i "C:\2.avi" -preset ultrafast -crf 18 -vf  drawtext=text=stackoverflow:fontfile=C:/WINDOWS/Fonts/georgia.ttf C:\o.mkv

但是,一旦我们更改命令(更改位置 fontfile= 与 text=
ffmpeg -y -i "C:\2.avi" -preset ultrafast -crf 18 -vf  drawtext=fontfile=C:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow C:\o.mkv

我收到以下错误

[Parsed_drawtext_0 @ 02d88a80] 无法加载字体“C”:无法找到匹配的字体

[AVFilterGraph @ 02c86a20] 使用参数“fontf”初始化过滤器“drawtext”时出错
ile=C:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow:'
打开过滤器时出错!

我不明白为什么改变完全相同的参数会影响整体结果,这给我带来了真正的问题,因为每次我添加到这个查询时,我都想知道它只是参数的定位还是我实际上在做某事错误的。

最佳答案

问题是路径使用冒号( : ),它也恰好是参数的分隔符。我预计两个命令行都会失败,实际上......

docs说明您通常需要转义冒号,并为 drawtext 提供一个特定示例

Note that the colons need to be escaped.


drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'

因此,以下工作(Windows 对如何在 shell 中转义内容有些特殊,例如,没有单引号转义,因此您也需要转义 \)
drawtext=fontfile=C\\:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow

关于ffmpeg 命令行行为随机性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515930/

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