我想在c#.NET中爲ffmpeg編寫自定義包裝器。我下載了多個版本,但似乎我將不得不使用.exe文件。在C#.NET項目中使用(ffmpeg)可執行文件
ffmpeg.exe
ffplay.exe
ffprobe.exe
不過,我無法通過將添加引用來引用這些可執行文件 - >瀏覽等。
那麼我想現在要做的僅僅是將其添加爲一個文件。然後像使用命令行一樣在它們上運行命令。
這可能嗎?或者,也許有人有一個更好的主意?
非常感謝您的幫助。
我想在c#.NET中爲ffmpeg編寫自定義包裝器。我下載了多個版本,但似乎我將不得不使用.exe文件。在C#.NET項目中使用(ffmpeg)可執行文件
ffmpeg.exe
ffplay.exe
ffprobe.exe
不過,我無法通過將添加引用來引用這些可執行文件 - >瀏覽等。
那麼我想現在要做的僅僅是將其添加爲一個文件。然後像使用命令行一樣在它們上運行命令。
這可能嗎?或者,也許有人有一個更好的主意?
非常感謝您的幫助。
好吧,我想通了。對於任何想要爲ffmpeg編寫.NET包裝的人。下載「共享」版本。將'bin'文件夾的內容(包含可執行文件)添加到您的項目中。只需右鍵點擊您的解決方案 - >添加新項目...
然後,您可以使用如下的可執行文件。
你可以在json或xml中有ffmpeg,ffprobe等等輸出。所以你可以解析輸出並做任何事情。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ffmpeg\\ffmpeg.exe");
startInfo.Arguments = "-f dshow -i video=\"Front Camera\"";
startInfo.RedirectStandardOutput = true;
//startInfo.RedirectStandardError = true;
Console.WriteLine(string.Format(
"Executing \"{0}\" with arguments \"{1}\".\r\n",
startInfo.FileName,
startInfo.Arguments));
try
{
using (Process process = Process.Start(startInfo))
{
while (!process.StandardOutput.EndOfStream)
{
string line = process.StandardOutput.ReadLine();
Console.WriteLine(line);
}
process.WaitForExit();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
快樂編碼。
嘿,是的,我知道ffmpeg-csharp包裝。但我想寫我自己的自定義包裝。 – Gonzalioz 2014-10-27 08:57:01
您應該下載構建的Dev版本,然後在C++/CLI中創建低級包裝器,這將爲您用C#編寫的代碼提供託管API。 – galenus 2014-10-27 09:31:21