async void TrimFile(StorageFile srcFile, StorageFile destFile)
{
MediaEncodingProfile profile =
MediaEncodingProfile.CreateMp4(VideoEncodingQuality.HD720p);
MediaTranscoder transcoder = new MediaTranscoder();
// Set the start of the trim.
transcoder.TrimStartTime = new TimeSpan(0, 0, 1);
// Set the end of the trim.
transcoder.TrimStopTime = new TimeSpan(0, 0, 9);
PrepareTranscodeResult prepareOp = await
transcoder.PrepareFileTranscodeAsync(srcFile, destFile, profile);
if (prepareOp.CanTranscode)
{
var transcodeOp = prepareOp.TranscodeAsync();
transcodeOp.Progress +=
new AsyncActionProgressHandler<double>(TranscodeProgress);
transcodeOp.Completed +=
new AsyncActionWithProgressCompletedHandler<double>(TranscodeComplete);
}
else
{
switch (prepareOp.FailureReason)
{
case TranscodeFailureReason.CodecNotFound:
OutputText("Codec not found.");
break;
case TranscodeFailureReason.InvalidProfile:
OutputText("Invalid profile.");
break;
default:
OutputText("Unknown failure.");
break;
}
}
}
2 回答
libmp4v2为您提供构建某些内容的原语 . 我不知道这样做的免费现成解决方案,尽管只要你切割I帧边界就可以相对容易地实现 .
我不知道如何在不重新编码(转码)的情况下拆分视频,但在Windows 8上转码视频已经内置:
例如:
How to trim a video file (Windows Store apps using C#/VB/C++ and XAML)
对于较旧的Windows,也可以Splicer(使用DirectShow.Net) .
希望它可以帮助某人 .