我使用以下代码创建视频分辨率并在其上书写文字。
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/ffmpeg/OpenSans-Regular.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的 :
属性不会影响这种情况。
答案 0 :(得分:0)
它可以在进程中将设置工作目录地址值设置为proc.StartInfo.WorkingDirectory
。完整答案在此链接中:
https://social.msdn.microsoft.com/Forums/en-US/13dc1101-f1d0-4655-b4af-3f211927d5be/what-is-the-error-initializing-filter-drawtext-with-args-error-in-using-of-ffmpeg-at-c-process?forum=netfxbcl