使用Media foundation c#剪切视频剪辑

本文关键字:视频 Media foundation 使用 | 更新日期: 2023-09-27 17:58:57

我需要剪切视频剪辑的一部分,这是ffmpeg可以实现的,但我不想使用ffmpeg,并且希望严格遵守asp.net中的Media Foundation方法。有人能建议我怎么做吗。要求是要将直播从结束位置切到4分钟后,然后保存在视频文件中。我们必须从直播中剪切视频,而不是为了已经保存的视频。

使用Media foundation c#剪切视频剪辑

我可以建议您使用ffmpeg或其他视频编辑器。媒体基础是用于播放或编码视频的低级别框架。它不包括任何视频剪辑剪辑功能。当然,可以用Media Foundation为视频剪辑编写代码,但需要从头开始编写所有代码。我在Media Foundation有着丰富的经验,我可以将其与"乐高"积木进行比较——这些积木收集了非常"微小"的元素。我认为你的想法可能需要半年或更长时间才能实现。

顺便说一句,你可以通过Media Foundation找到我使用相机的源代码,在Windows 7和Windows 8上从网络相机捕获实时视频,你可以查看代码的复杂性。它支持在两个流上分割视频-观看和其他(例如录制)。可以通过其他流将视频录制到文件中,然后在视频录制完成后创建Media Foundation Media Session,打开临时视频文件,将位置视频读取器从结束时设置为打开分钟,然后重写到目标文件中。然而,你必须非常了解媒体基金会。有一本关于媒体基金会的书。它包括Media Foundation Media Session的代码。

从MP4文件创建子ip的一种方法是使用Media Foundation API的Source Reader和Sink Writer,这样您就可以从特定位置开始"读取"所有感兴趣的流,并分别停止。数据将传递到接收器写入程序实例以生成子IP文件。

这可以在有视频重新压缩和没有视频重新压缩的情况下完成。请注意,Media Foundation是本机代码API,您可能需要一个包装器库,为ASP.NET提供相应的接口。

另一种方式是使用具有TrimStartTime/TrimStopTime属性的UWP MediaTranscoder API。代码转换媒体示例应该能让您深入了解。