2012-12-21 76 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);