2014-09-24 179 views
5

我已经使用了Microsoft Expression Encoder的追加两个视频WMV格式,这事正常工作 的问题是,当我试图追加超过“WMV”等影片,它给出例外 FileNot Supported转换视频,AVI格式使用C#

我在谷歌搜索,但我无法找到解决方案。

private void button1_Click(object sender, EventArgs e) 
    { 

     MediaItem mediaItem1 = null; 
     Job job = new Job(); 
     job.EncodeProgress += new EventHandler<EncodeProgressEventArgs>(job_EncodeProgress); 
     int count = 0; 
     //video url contains all urls of videos 
     foreach (string x in VideosUrls) 
     { 
      if (count == 0) 
      { 
       mediaItem1 = new MediaItem(x); 

       job.MediaItems.Add(mediaItem1); 
      } 
      else 
      { 
       mediaItem1.Sources.Add(new Source(x)); 
      } 
      count++; 
     } 

     job.OutputDirectory = @"C://videoOutput"; 
     job.Encode(); 
    } 

有编程,没有音频或质量损失追加之前使用AForge.NET微软Expression Encoder的,所以我可以任意“MP4”视频转换为“WMV”任何方式。

非常感谢您阅读完所有的问题:)

+0

未尝试编码,但嵌入式播放与32/64位编解码器不匹配可能是一个问题。也许尝试构建x86 32位或安装像K-Lite这样的编解码器包。 – WhoIsRich 2014-09-24 11:31:31

回答

1

我会检查你的Windows Media编码器的哪个版本。

的“速成版”显然,“不支持H.264编码”。

实际情况是,您需要MPEG LA的MP4编码许可证。也许那为什么只有Expression Encoder的支持MPEG的付费版本4.

从逻辑上讲,你不能从一个视频/音频格式转换为另一种没有松动的质量。 WMV文件通常包含以VC-1编码的视频和以WMA编码的音频。但.mp4文件通常包含h.264视频和AC-3音频。

所以,你最终的.wmv文件需要包含在VC-1视频仅这将意味着解码H.264视频和VC-1编码的。这意味着质量损失。

VideoLAN的可以告诉你,你的.MP4和.wmv文件内部使用的编解码器。见this answer