我正在寻找一种方法来分割或剪切用h264编码的mp4视频文件,而无需重新编码。到目前为止编辑mp4 h264编码的文件我使用了Microsoft Expression Encoder 4 Pro。问题是,我总是必须重新编码文件,这需要时间,如果我只想剪切或拆分视频文件,则会花费不必要的时间。任何帮助或指向正确的方向表示赞赏。切割mp4 h264视频文件无需重新编码
2
A
回答
0
libmp4v2为您提供了构建自己做某些事情的原语。我没有意识到现成的解决方案可以做到这一点,但只要您切割I帧边界,实现起来相对容易。
3
我不知道如何分割而无需重新编码(转码)视频,但在Windows 8转码的视频已经内置:
要修剪的文件,调用aysnc方法PrepareFileTranscodeAsync然后调用PrepareTranscodeResult对象上的TranscodeAsync方法。
例如:
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;
}
}
}
How to trim a video file (Windows Store apps using C#/VB/C++ and XAML)
也可以到Splicer(使用DirectShow.Net)用于Windows的早期。
希望它可以帮助别人。
+0
嗨,感谢您的提示。该项目发生了变化,但只要我不得不再次处理这个问题,我就会看看你的解决方案/示例。 – Kevkong 2014-01-24 17:03:04
相关问题
- 1. 如何用H264编解码器编写mp4视频文件?
- 2. 将RTP视频流(H264编解码器)写入mp4文件
- 3. 蟒蛇/视频 - 无需重新编码
- 4. ffmpeg重新编码h264 mp4修剪多余的音频
- 5. 无需重新编码保存H264编码流
- 6. FFMPEG和H264编码的MP4
- 7. FFmpeg/X264:分割视频中GOP,无需重新编码整个流
- 8. 使用Java编码H264视频
- 9. 解码h264视频
- 10. 使用bufferedimages将视频编码成h264?
- 11. H264编码视频流的ffmpeg C++
- 12. 如何将视频编码为h264?
- 13. FFmpeg解码.mp4视频文件
- 14. Android软件解码器(OMX.google.h264.decoder)无法解码H264视频
- 15. DirectShow视频切割
- 16. 视频切割iOS
- 17. FFMPEG从MKV转换到MP4无需重新编码
- 18. MP4视频文件播放视频
- 19. 如何从android上的h264编码帧创建mp4文件?
- 20. 将视频流MPEGTS(H264)分割为unix下的文件块
- 21. Java将BufferedImages编码为视频文件(mp4)
- 22. 强制VLC播放h264视频文件
- 23. 批量重命名/重新命名为视频编码
- 24. 无法播放mp4视频
- 25. 无法使用FFMPEG重新流MP4到HTML5视频
- 26. h264在C++中的MP4文件容器
- 27. 如何剪切视频长度(Mp4)?
- 28. 如何解码从yuv444p帧编码的h264视频?
- 29. ffmpeg API h264编码视频无法在所有平台上播放
- 30. 分割mp4文件与mp4-dash
取决于视频的编码方式。除非您在关键帧边界上进行分割,否则通常需要对其至少一部分进行重新编码。 – 2013-03-22 21:51:52
分裂在关键帧的边界对我来说会很好,但我没有找到任何库,我可以用这个“简单”的任务在c# – Kevkong 2013-03-23 02:38:41