我希望制作一个用于解析ffmpeg输出的程序。但当仅通过命令行运行ffmpeg时,输出是以文本形式呈现的。
strCmdText = "-y -i \"" + path + "\"";
strCmdText += " -async 1 -vf yadif -c:v libx264 -b:v 1024k -r 30 -bf 1 -an nul.avi";
Process.Start(new ProcessStartInfo("lib\\ffmpeg.exe", strCmdText));
相较于批处理启动,它的速度慢了2/3:
set FFMPEG="ffmpeg\ffmpeg.exe"
%FFMPEG% -y -i %1 -async 1 -vf yadif -c:v libx264 -b:v 1024k -r 30 -bf 1 -an -pass 1 nul.avi
在C#中运行时,它的fps率为130(CPU:100%),但使用批处理运行时,它有400 fps(CPU 75%)。
无论哪种方式,RAM使用情况都相同,#Handels和#Threads也是如此。 将进程优先级设置为High / Live也无法解决此问题,也不能在单独的线程中运行进程。
这是正常的吗? 还是可以解决?