Я пытаюсь объединить видео со звуком, загруженным с YouTube, но скрипт зависает на моей машине, используя 100% моего процессора, и файл результата слишком велик, например: загруженное аудио и видео 720pв общей сложности 80 МБ транскодированного видео будет 400 МБ (для 720p и для 4K-видео сбой приложения).
Я попытался скопировать загруженные свойства HD-видео, чтобы создать из него MediaEncodingProfile , но это не работает, все, что я получаю, это пиксельное видео, зная, что загруженное видео HD 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();
}
Спасибо
РЕДАКТИРОВАТЬ:
Проблема здесь заключается в потребление ресурсов процессора при 100% для видео рендеринга 720p и выше, как этого избежать, он замораживает мою машину!