Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#通用平台音频合并或视频输入_C#_Audio_Video_Merge_Uwp - Fatal编程技术网

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

C#通用平台音频合并或视频输入,c#,audio,video,merge,uwp,C#,Audio,Video,Merge,Uwp,我尝试在.mp4中输入.aac 如我们所知 ffmpeg cmd ffmpeg -i audio.mp3 -i video.mp4 -c copy output 如何在c#uwp中做到这一点,我在谷歌上搜索过我没有看到关于这个问题的任何结果,每个人都发布了这个问题 但如何将其与c#任何样本prj或信息合并将非常有用 C#通用平台音频合并或视频输入 UWP提供了关于此需求的API。这个特性可以通过类的方法在uwp中实现。详情请参考。您可以从的场景3中找到一个示例 例如: // Create

我尝试在.mp4中输入.aac

如我们所知

ffmpeg cmd
ffmpeg -i audio.mp3 -i video.mp4 -c copy output
如何在c#uwp中做到这一点,我在谷歌上搜索过我没有看到关于这个问题的任何结果,每个人都发布了这个问题

但如何将其与c#任何样本prj或信息合并将非常有用

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

UWP提供了关于此需求的API。这个特性可以通过类的方法在uwp中实现。详情请参考。您可以从的场景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);
MediaComposition
是从视频文件创建的。将从要合并到视频的Mp3或其他音频文件创建。最后,我们需要(示例被渲染到
MediaElement
进行播放)

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

UWP提供了关于此需求的API。这个特性可以通过类的方法在uwp中实现。详情请参考。您可以从的场景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);
MediaComposition
是从视频文件创建的。将从要合并到视频的Mp3或其他音频文件创建。最后,我们需要(示例被渲染到
MediaElement
播放)。

公共异步任务MergeVideoAudioAsync(StorageFile videoFile、StorageFile audioFile、string finalFileName、StorageFolder destinationFolder)
{
MediaComposition=新的MediaComposition();
var file=await destinationFolder.CreateFileAsync(finalFileName,CreationCollisionOption.GenerateUniqueName);
var clip=wait MediaClip.CreateFromFileAsync(视频文件);
合成.剪辑.添加(剪辑);
var backgroundTrack=await BackgroundAudioTrack.CreateFromFileAsync(audioFile);
作文.背景音轨.添加(背景音轨);
wait composition.RenderToFileAsync(文件);
返回文件;
}
公共异步任务MergeVideoAudioAsync(存储文件videoFile、存储文件audioFile、字符串finalFileName、存储文件夹destinationFolder)
{
MediaComposition=新的MediaComposition();
var file=await destinationFolder.CreateFileAsync(finalFileName,CreationCollisionOption.GenerateUniqueName);
var clip=wait MediaClip.CreateFromFileAsync(视频文件);
合成.剪辑.添加(剪辑);
var backgroundTrack=await BackgroundAudioTrack.CreateFromFileAsync(audioFile);
作文.背景音轨.添加(背景音轨);
wait composition.RenderToFileAsync(文件);
返回文件;
}

将MediaComposition渲染为文件通用分辨率变得如此之低,有没有办法用audio@AsifShariar,
MediaComposition.RenderToFileAsync
有几种重载方法,您可以将
mediacencodingprofile
分配给希望保持质量的内容。如果在使用这些参数时仍然存在问题,则可以打开一个新线程。感谢您的理解。它可以工作,但文件大小太大;假设我使用create mp4 HD1080p,我的默认文件分辨率也是1080 p,但大小为50 mb和.aac 2 mb,因此总共52 mb,因此在通过创建新的mp4 HD1080p并渲染文件大小获得400 mb来使用声音对其进行编码之后,任何关于将MediaComposition恢复为文件通用分辨率的解决方案都会变得如此之低,有没有办法使用audio@AsifShariar,
MediaComposition.RenderToFileAsync
有几种重载方法,您可以将
mediacencodingprofile
分配给希望保持质量的内容。如果在使用这些参数时仍然存在问题,则可以打开一个新线程。感谢您的理解。它可以工作,但文件大小太大;假设我使用create mp4 HD1080p,我的默认文件分辨率也是1080 p,但大小为50 mb和.aac 2 mb,因此总共52 mb,因此在通过创建新的mp4 HD1080p并渲染文件大小获得400 mb来对其进行声音编码后,有什么解决方案吗