在c#进程类中使用ffmpeg时出现“使用args初始化过滤器'drawtext'的错误...”是什么错误?

时间:2016-11-03 09:56:43

标签: c# process ffmpeg drawtext

我使用以下代码创建视频分辨率并在其上书写文字。

    var proc = new System.Diagnostics.Process();
    strin OrginalResolution="nhd";
    proc.EnableRaisingEvents = false;
    proc.StartInfo.FileName = ffmpegPath;
    proc.StartInfo.Arguments = "-i \"" + fileIn +
                               "\" -f mp4 -s " + OrginalResolution + " -vf drawtext=fontfile=/OtherProjects/ConvertProj/ff‌​mpeg/OpenSans-Reg‌​ular.ttf:text=Parsa" \"" + fileOut.Split('.')[0] +
                               ".mp4";
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.CreateNoWindow = false;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.RedirectStandardError = true;

    proc.Start();
    proc.WaitForExit();
    string sdsd = proc.StandardError.ReadToEnd();
    proc.Close();

我遇到了这个问题(StandardError的一些字符串输出在下面):

Fontconfig error: Cannot load default config file\r\n[Parsed_drawtext_0       
@0000000002fd8c20] Cannot find a valid font for the family 
Sans\r\n[AVFilterGraph @ 0000000000511660] Error initializing 
filter'drawtext' with args 
'fontfile=/OtherProjects/ConvertProj/ffmpeg/OpenSans-
Regular.ttf:text=parsa'\r\nError opening 
filters!\r\n

cmd 中,进程的相同参数值正常工作。 我读到此问题与如何在使用时使用引号有关 ffmpeg中的文本属性 drawtext 。但我找不到任何 解决这个问题的解决方案。
任何人都可以帮助我吗?

还有人可以帮助我吗?这是一个错误吗? 我在代码中使用了任何解析:的解决方案,但无法解决此问题。 它找不到font.I删除drawtext的其他过滤器以找出任何过滤器没有错误,但仍然存在错误。

对于转义expansion=none,drawtext的

:属性不会影响这种情况。

1 个答案:

答案 0 :(得分:0)