使用C#将视频从Mp4,avi格式转换为wmv格式

时间:2014-09-24 10:01:14

标签: c# video aforge wmv expression-encoder-sdk

我使用Microsoft Expression Encoder附加了两个视频,这个功能很好 问题是,当我尝试追加' wmv' 以外的视频时,它会例外   FileNot支持

我在google上搜索但我无法找到解决方案。

    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 Microsoft Expression Encoder ,以便我可以转换任何&lt; mp4&#39; 视频在添加音频或质量损失之前,以编程方式添加&#39; wmv&#39;

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

1 个答案:

答案 0 :(得分:1)

我会检查您的Windows Media编码器版本。

“Express Edition”显然“不支持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