Windows 中 ffmpeg.exe 批处理文件中的转义字符

Windows 中 ffmpeg.exe 批处理文件中的转义字符

我在批处理文件中有一个复杂的 ffmpeg.exe 命令...我不确定如何正确地转义特殊字符:

ffmpeg.exe -f dshow -i video="Logitech HD Pro Webcam C920" -vframes 1 -pixel_format yuv420p -s 1920x1080 -hide_banner -loglevel panic -q:v 1 -y -vf "drawtext=expansion=strftime:fontfile='C\:\\Windows\\Fonts\\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:[email protected]" c920.jpg

从命令提示符运行时效果很好,当我在批处理文件中运行它时,文本覆盖会显示“Yd M:p”而不是“Mon 2017-10-23 04:45:18PM”

如果我删除文本覆盖部分(如下),它就可以正常工作。

-vf "drawtext=expansion=strftime:fontfile='C\:\\Windows\\Fonts\\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:[email protected]"

答案1

我不知道如何正确地转义特殊字符

您需要将%s 加倍,并将每个单个替换%%%

%字符对于命令行参数和参数具有特殊含义FOR。要将百分号视为常规字符,请将其加倍。

来源句法- 转义符、分隔符和引号


进一步阅读

相关内容