2012-12-21 110 views
2

我有一個我想壓縮的AVI文件。用c壓縮avi視頻#

我一直在使用Simple C# Wrapper for the AviFile Library嘗試,但它的,因爲2個原因是有問題的:

  • 而壓縮,基礎設施彈出窗體窗口選擇的壓縮方法,並通過我不能chooce壓縮方法代碼
  • 壓縮使得聲音消失

這裏是我的代碼:

 AviManager aviManager = new AviManager(aviFilePath, true); 
     VideoStream aviStream = aviManager.GetVideoStream(); 

     VideoStream newStream; 
     AviManager newManager = aviStream.DecompressToNewFile(compressedAviPath, true, out newStream); 

     aviManager.Close(); 
     //save and close un-/re-compressed file 
     newManager.Close(); 

你有任何想法如何,我可以:

  1. 解決這些問題
  2. 使用另一個庫,可以壓縮AVI視頻

感謝, 蓋伊。

+0

您可以使用DirectShow的,它(我認爲)打算讓你出C#的土地。如果有意義的話,你可以從C#調用所有東西,只是不是本地的。 DirectShow AVI壓縮過濾器: http://msdn.microsoft.com/en-us/library/windows/desktop/dd318184(v=vs.85).aspx受管理的DirectX也可能有幫助。我會嘗試Google搜索。 –

+0

感謝您的回答,但它似乎是一個巨大的開銷使用DirectShow。是否有任何其他選項通過.net壓縮AVI視頻? –

回答

0

您可以使用EmguCv

//VideoWriter vw = new public VideoWriter(string fileName, int fps, int width, int height, bool isColor); 
VideoWriter vw = new VideoWriter("test.avi", 30, 500, 500, true); 
//Then write your frame 
vw.WriteFrame(frame);