【发布时间】:2014-11-04 16:40:04
【问题描述】:
我使用 C# 为 Windows 8.1 和 Windows Phone 8.1 编写了一个通用应用程序,允许用户录制视频并将其发送给客户,但现在需要将多个视频合并为一个视频,但看不到任何内容在 WinRT 中可用以支持这一点。
可以吗?
【问题讨论】:
-
我感觉您需要了解更多有关相关文件编码的信息。如果它像将两个二进制文件合并为一个那样简单,那是非常可行的。如果二进制文件具有需要合并/删除的标题和元数据,那么您必须识别并找到它们。您可以直接访问字节流并且可以这样操作它们。
-
我目前正在假设它们是相同的视频格式、分辨率等,并使用相同的相机记录在同一设备上
-
格式等不一定重要。您需要了解的是文件编码的规范。考虑 [Header] + [Video Data] 的编码。合并这两个文件时,如果直接执行,您将得到 [Header1] + [Video1] + [Header2] + [Video2]。但是,如果您删除了 [Header2],那么您将得到 [Header1] + [Video1] + [Video2]。事情不会这么简单。您可能需要更改视频文件的标题以包含更新长度等内容。
-
也可以简单地将第二个视频“录制”到第一个视频中。考虑指南here 及其对
_mediaCapture.StartRecordToStreamAsync的使用。可以简单地向它传递一个已经包含视频的流。创建一个长度为两者组合的新流,加载第一个流,寻找正确的位置,加载第二个流,从那里写入。您必须进行研究和试验才能找到答案,因为这不是直接支持的方案。
标签: c# windows-8 windows-runtime windows-8.1 windows-phone-8.1