如何从UWP运行ffmpeg?

如何从UWP运行ffmpeg?,uwp,Uwp,我想在我的UWP应用程序中使用ffmpeg使用时间戳剪切视频 我的应用程序是完全基本的 我有一个选择文件的按钮 和时间戳字段 我可以使用cmd剪切视频。 但是如何在UWP中做到这一点呢? < P>你应该考虑使用 MealActupps()。您希望实现的目标的一些示例: private void TrimClipBeforeCurrentPosition() { var currentClip = composition.Clips.FirstOrDefault( mc =

我想在我的UWP应用程序中使用ffmpeg使用时间戳剪切视频

我的应用程序是完全基本的

我有一个选择文件的按钮 和时间戳字段

我可以使用cmd剪切视频。
但是如何在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加速吗?是的,先生,是的。