gpt4 book ai didi

c# - 使用 FFMPEG(c# 应用程序)向视频添加文本

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

尝试使用以下命令通过 c# 脚本使用 FFMPEG 向视频添加文本

ffmpeg -i input.mp4 -vf drawtext="\text='Stack Overflow': fontcolor=white: fontsize=24: box=1: boxcolor=black@0.5: x=w-tw-10:y=h-th-10" -codec:a copy output.mp4

这在从 cmd 运行它时有效,但是当我在这里实现它时:
    public void AddNewLabel(string label)
{
//string video = "input.mp4";
string filter = "input.mp4 -vf drawtext=\"\text='sampletext': fontcolor=white: fontsize=24: box=1: boxcolor=black: x=w-tw-10:y=h-th-10\"";//problemm is this line

string args = $"/c ffmpeg -i {filter} -codec:a copy output.mp4";

ProcessStartInfo startInfo = new ProcessStartInfo
{
CreateNoWindow = false,
FileName = "cmd.exe",
WorkingDirectory = outputpath,
Arguments = args
};

using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}

输出是一个无法打开的 0kb mp4 文件。当我在过滤器中删除 input.mp4 之后的所有内容时,输出很好。我可能做错了什么?

最佳答案

drawtext=\"\text需要drawtext=\"\\text见 fiddle :https://dotnetfiddle.net/sE7w9L
输出:

input.mp4 -vf drawtext=" ext='sampletext': fontcolor=white: fontsize=24: box=1: boxcolor=black: x=w-tw-10:y=h-th-10"


相对

input.mp4 -vf drawtext="\text='sampletext': fontcolor=white: fontsize=24: box=1: boxcolor=black: x=w-tw-10:y=h-th-10"

\t是制表符的转义符(又名“ tab ”)。这就是为什么你需要在这里转义转义字符本身。这是通过加倍来完成的 => \\t
正如@Jawad 正确指出的那样:还有另一种方法可以实现相同的目标:
Verbatim Identifier”:

The @ special character serves as a verbatim identifier. It can be used in the following ways:

  1. To enable C# keywords to be used as identifiers. [...]

  2. To indicate that a string literal is to be interpreted verbatim. [...]


例子:
string filename1 = @"c:\documents\files\u0066.txt";

关于c# - 使用 FFMPEG(c# 应用程序)向视频添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60044451/

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