C#通用平台音频合并或视频输入
我尝试在.mp4中输入.aac 如我们所知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
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来对其进行声音编码后,有什么解决方案吗