我想为 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 都是相同的。将进程优先级设置为高/实时不会解决此问题,也不会在单独的线程中运行进程。
这是正常的,还是可以修复?