【问题标题】:Expression Encoder SDK - How to add audio track on a videoExpression Encoder SDK - 如何在视频中添加音轨
【发布时间】:2013-03-05 19:11:41
【问题描述】:

我可以在这方面使用一些帮助。我想在视频上叠加一个 audio.mp3 文件(或任何其他格式)。

我使用的是免费版本的 Expression Encoder 4,所以我所有的视频输出都是 wmv。问题是,我不知道如何将音频文件添加到视频 MediaItem。我尝试了这样的事情,但它没有在结果中添加音频:

MediaItem videoTrack = new MediaItem(@"path\to\videofile.wmv");
videoTrack.OutputFormat = new WindowsMediaOutputFormat();
videoTrack.OutputFormat.VideoProfile = new AdvancedVC1VideoProfile();
MediaItem audioTrack = new MediaItem(@"path\to\audio.mp3");
videoTrack.OutputFormat.AudioProfile = audioTrack.SourceAudioProfile;
job.MediaItems.Add(videoTrack);
job.Encode();

当这不起作用时(可能因为单独的配置文件只是元数据,而不是音频文件本身),然后我尝试通过这样做来覆盖音频,就像我将图像覆盖到视频上一样:

MediaItem videoTrack = new MediaItem(@"path\to\videofile.wmv");
string overlayFilename = @"path\to\audio.mp3";
videoTrack.OverlayFileName = overlayFilename;
job.MediaItems.Add(videoTrack);
job.Encode();

这也失败了,这次有一个错误说覆盖项目需要有视频流或其他东西(我猜 ExEncoder 预计该覆盖是一个视频文件)。一些帮助将不胜感激。对于像 ExEncoder 4 这样强大的产品来说,这真的不应该这么难。

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    MediaItem 还有一个名为 AudioOverlayFileName 的属性 - 如果您只想覆盖音频,则应设置该属性!

    【讨论】:

    • 它似乎对所有者有效,但对我无效。就我而言,我有一个没有音频的视频文件和两个没有视频的音频文件。我的预期结果是一个包含所有这些项目的 .mp4 文件。我在使用这个解决方案时得到的输出只是视频。也许我做错了什么?无论如何,我建议在NReco.VideoConverter 中使用FFMpegConverter 类。您需要做的就是使用此处找到的命令之一调用FFMpegConverter.Invoke("");:stackoverflow.com/a/11783474
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    相关资源
    最近更新 更多