gpt4 book ai didi

c# - 使用 Mediacomposition 的 MUX 音频和视频 UWP

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:40 25 4
gpt4 key购买 nike

我正在尝试将视频与从 youtube 下载的音频 acc 合并,但脚本正在使用 100% 的 CPU 卡住我的机器,结果文件太大,例如:下载的音频和 720p 视频是总共 80MB 的转码视频将是 400MB(对于 720p 和 4K 视频,应用程序崩溃)。

我试图复制下载的高清视频属性以从中创建一个 MediaEncodingProfile,但它不起作用,我知道下载的是高清 720 视频,但我得到的只是像素视频。这是代码:

public IAsyncOperation<IStorageFile> MergeAudioandVideoHDAsync(StorageFile videoFile, StorageFile audioFile, string finalFileName, StorageFolder destinationFolder)
{
return Task.Run<IStorageFile>(async () =>
{
IStorageFile _OutputFile = await destinationFolder.CreateFileAsync(finalFileName, CreationCollisionOption.GenerateUniqueName);
MediaComposition _MediaComposition = new MediaComposition();
var clip = await MediaClip.CreateFromFileAsync(videoFile);
_MediaComposition.Clips.Add(clip);
//Adding Background Audio Track
_MediaComposition.BackgroundAudioTracks.Add(await BackgroundAudioTrack.CreateFromFileAsync(audioFile));
MediaEncodingProfile _MediaEncodingProfile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.HD720p);
TranscodeFailureReason _TranscodeFailureReason = await _MediaComposition.RenderToFileAsync(_OutputFile, MediaTrimmingPreference.Fast, _MediaEncodingProfile);

if (_TranscodeFailureReason != TranscodeFailureReason.None)
{
throw new Exception("Video Concatenation Failed: " + _TranscodeFailureReason.ToString());
}
return _OutputFile;

}).AsAsyncOperation();
}

谢谢

编辑:

这里的问题是 720p 及以上的视频渲染100% 的 CPU 消耗,如何避免这种情况,它会卡住我的机器!

最佳答案

MediaComposition. RenderToFileAsync(IStorageFile, MediaTrimmingPreference, MediaEncodingProfile) 使用指示的媒体修剪首选项和编码配置文件将 MediaComposition 异步呈现到指定文件。

当使用此方法将合成渲染到文件时,影响文件大小的唯一因素是第三个参数,即 MediaEncodingProfile 。当您使用此类创建 mp4 文件时:

  MediaEncodingProfile _MediaEncodingProfile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.HD720p);

VideoEncodingQuality是一个枚举,不同的枚举类型值决定了文件的不同编码,最终导致文件大小不同。下面是不同枚举类型值的测试:

enter image description here

所以渲染成mp4文件时,请引用测试结果选择合适的编码格式。

关于c# - 使用 Mediacomposition 的 MUX 音频和视频 UWP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53473266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com