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

Cha*_*lie 5 c# video wmv aforge expression-encoder-sdk

我已经使用Microsoft Expression Encoder附加了两个视频,这个东西很好用问题是,当我试图追加"wmv"以外的视频时,它给出了FileNot支持的例外情况

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

    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();
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法使用AForge.NET或Microsoft Expression Encoder,所以我可以编程方式将任何'mp4'视频转换为'wmv',然后再添加音频或质量损失.

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

小智 1

我会检查您拥有哪个版本的 Windows Media 编码器。

“Express Edition”显然“不支持H.264编码”。

事实上,您需要 MPEG LA 的 MP4 编码许可证。这可能就是为什么只有 Express Encoder 的付费版本支持 MPEG 4。

从逻辑上讲,您无法在不损失质量的情况下从一种视频/音频格式转换为另一种视频/音频格式。WMV 文件通常包含以 VC-1 编码的视频和以 WMA 编码的音频。但 .mp4 文件通常包含 h.264 视频和 AC-3 音频。

因此,您的最终 .wmv 文件将只需要包含 VC-1 中的视频,这意味着解码 h.264 视频并在 VC-1 中对其进行编码。这意味着质量损失。

VideoLan 可以告诉您 .mp4 和 .wmv 文件中使用的编解码器。看到这个答案。