如何从UWP运行ffmpeg?
我想在我的UWP应用程序中使用ffmpeg使用时间戳剪切视频 我的应用程序是完全基本的 我有一个选择文件的按钮 和时间戳字段 我可以使用cmd剪切视频。如何从UWP运行ffmpeg?,uwp,Uwp,我想在我的UWP应用程序中使用ffmpeg使用时间戳剪切视频 我的应用程序是完全基本的 我有一个选择文件的按钮 和时间戳字段 我可以使用cmd剪切视频。 但是如何在UWP中做到这一点呢? < P>你应该考虑使用 MealActupps()。您希望实现的目标的一些示例: private void TrimClipBeforeCurrentPosition() { var currentClip = composition.Clips.FirstOrDefault( mc =
但是如何在UWP中做到这一点呢? < P>你应该考虑使用<代码> MealActupps()。您希望实现的目标的一些示例:
private void TrimClipBeforeCurrentPosition()
{
var currentClip = composition.Clips.FirstOrDefault(
mc => mc.StartTimeInComposition <= mediaPlayerElement.MediaPlayer.PlaybackSession.Position &&
mc.EndTimeInComposition >= mediaPlayerElement.MediaPlayer.PlaybackSession.Position);
TimeSpan positionFromStart = mediaPlayerElement.MediaPlayer.PlaybackSession.Position - currentClip.StartTimeInComposition;
currentClip.TrimTimeFromStart = positionFromStart;
}
private async Task RenderCompositionToFile()
{
var picker = new Windows.Storage.Pickers.FileSavePicker();
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
picker.FileTypeChoices.Add("MP4 files", new List<string>() { ".mp4" });
picker.SuggestedFileName = "RenderedComposition.mp4";
Windows.Storage.StorageFile file = await picker.PickSaveFileAsync();
if (file != null)
{
// Call RenderToFileAsync
var saveOperation = composition.RenderToFileAsync(file, MediaTrimmingPreference.Precise);
saveOperation.Progress = new AsyncOperationProgressHandler<TranscodeFailureReason, double>(async (info, progress) =>
{
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
{
ShowErrorMessage(string.Format("Saving file... Progress: {0:F0}%", progress));
}));
});
saveOperation.Completed = new AsyncOperationWithProgressCompletedHandler<TranscodeFailureReason, double>(async (info, status) =>
{
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
{
try
{
var results = info.GetResults();
if (results != TranscodeFailureReason.None || status != AsyncStatus.Completed)
{
ShowErrorMessage("Saving was unsuccessful");
}
else
{
ShowErrorMessage("Trimmed clip saved to file");
}
}
finally
{
// Update UI whether the operation succeeded or not
}
}));
});
}
else
{
ShowErrorMessage("User cancelled the file selection");
}
private void TrimClipBeforRecurrentPosition()
{
var currentClip=composition.Clips.FirstOrDefault(
mc=>mc.StartTimeInComposition=mediaPlayerElement.MediaPlayer.PlaybackSession.Position);
TimeSpan positionFromStart=mediaPlayerElement.MediaPlayer.PlaybackSession.Position-currentClip.StartTimeInComposition;
currentClip.TrimTimeFromStart=位置FromStart;
}
专用异步任务RenderCompositionToFile()
{
var picker=new Windows.Storage.Pickers.FileSavePicker();
picker.SuggestedStartLocation=Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
添加(“MP4文件”,新列表(){.MP4”});
picker.SuggestedFileName=“renderdcomposition.mp4”;
Windows.Storage.StorageFile file=wait picker.PickSaveFileAsync();
如果(文件!=null)
{
//调用RenderToFileAsync
var saveOperation=composition.RenderToFileAsync(文件,MediaTrimmingPreference.Precise);
saveOperation.Progress=新建AsyncOperationProgressHandler(异步(信息,进度)=>
{
等待这个.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,新的DispatchedHandler(()=>
{
消息(string.Format(“保存文件…进度:{0:F0}%”,进度));
}));
});
saveOperation.Completed=新建AsyncOperationWithProgressCompletedHandler(异步(信息,状态)=>
{
等待这个.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,新的DispatchedHandler(()=>
{
尝试
{
var results=info.GetResults();
if(结果!=TranscodeFailureReason.None | | status!=AsyncStatus.Completed)
{
发送错误消息(“保存未成功”);
}
其他的
{
信息(“修剪后的剪辑保存到文件”);
}
}
最后
{
//无论操作是否成功,都要更新UI
}
}));
});
}
其他的
{
错误消息(“用户取消了文件选择”);
}
}您想专门使用ffmpeg还是只需要剪切视频?嗯,只需剪切视频..同时向视频添加背景音乐。这是使用gpu加速吗?是的,先生,是的。