C# 通用平台音频合并或输入视频

Asi*_*iar 2 c# audio video merge uwp

我尝试在.mp4中输入.aa​​c

众所周知

ffmpeg cmd
ffmpeg -i audio.mp3 -i video.mp4 -c copy output
Run Code Online (Sandbox Code Playgroud)

如何在 c# uwp 中执行此操作,我在 google 中进行了搜索,但没有看到有关此问题的任何结果,每个人都发布了转换问题。

但是如何将它与 c# 合并任何示例 prj 或信息都会很棒

Sun*_* Wu 5

C# 通用平台音频合并或输入视频

UWP 提供了有关此要求的 API。BackgroundAudioTracks这个功能在uwp中可以通过类的方法来实现MediaComposition。有关如何操作的详细信息,请参阅向作品添加背景音轨您可以在MediaEditing 官方示例的场景 3 中找到示例。

例如:

  // Create the original MediaComposition
  var clip = await MediaClip.CreateFromFileAsync(pickedFile);
  composition = new MediaComposition();
  composition.Clips.Add(clip);

  // Add background audio
  var picker = new Windows.Storage.Pickers.FileOpenPicker();
  picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.MusicLibrary;
  picker.FileTypeFilter.Add(".mp3");
  picker.FileTypeFilter.Add(".wav");
  picker.FileTypeFilter.Add(".flac");
  var audioFile = await picker.PickSingleFileAsync();
  if (audioFile == null)
  {
      rootPage.NotifyUser("File picking cancelled", NotifyType.ErrorMessage);
      return;
  }

  var backgroundTrack = await BackgroundAudioTrack.CreateFromFileAsync(audioFile);
  composition.BackgroundAudioTracks.Add(backgroundTrack);

  // Render to MediaElement
  mediaElement.Position = TimeSpan.Zero;
  mediaStreamSource = composition.GeneratePreviewMediaStreamSource((int)mediaElement.ActualWidth, (int)mediaElement.ActualHeight);
  mediaElement.SetMediaStreamSource(mediaStreamSource);
Run Code Online (Sandbox Code Playgroud)

MediaComposition是从视频文件创建的。它BackgroundAudioTrack是根据要合并到视频的 Mp3 或其他音频文件创建的。最后,我们需要渲染到MediaComposition文件(示例被渲染到MediaElement用于播放)。