FFmpeg C#應用(一):執行指令

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。採用LGPLGPL許可證。它提供了錄製、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,爲了保證高可移植性和編解碼質量,libavcodec裏很多code都是從頭開發的。

C#程序中,可以通過開啓新進程運行ffmpeg.exe,通過代碼寫入指令並執行,實現對音視頻文件的操作。ffmpeg.exe可以通過下載官網的源碼並編譯後得到,實際使用時,可能還會用到一些dll文件,將這些文件拷貝到程序的運行目錄下即可使用。

下面是用於在C#代碼中執行FFmpeg指令的函數,pc爲進程對象,command爲執行的指令:

private void ExecuteCommand(Process pc, stringcommand,

out string output, out string error)

        {

            try

            {

                //創建進程

               pc.StartInfo.FileName = command;

                pc.StartInfo.UseShellExecute = false;

               pc.StartInfo.RedirectStandardOutput = true;

               pc.StartInfo.RedirectStandardError = true;

                pc.StartInfo.CreateNoWindow = true;

 

                //啓動進程

                pc.Start();

 

                //準備讀出輸出流及錯誤流

                stringoutputData = string.Empty;

                stringerrorData = string.Empty;

                pc.BeginOutputReadLine();

                pc.BeginErrorReadLine();

 

                pc.OutputDataReceived += (ss,ee) =>

                {

                    outputData += ee.Data;

                };

 

                pc.ErrorDataReceived += (ss,ee) =>

                {

                    errorData += ee.Data;

                };

 

                //等待執行結束後退出

                pc.WaitForExit();

 

                //關閉進程

                pc.Close();

 

                //返回結果

                output = outputData;

                error = errorData;

            }

            catch(Exception)

            {

                output = null;

                error = null;

            }

        }

 

資料

FFmpeg官網: http://www.ffmpeg.org

FFmpeg doc : http://www.ffmpeg.org/documentation.html

FFmpeg wiki : https://trac.ffmpeg.org/wiki


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章