录制时将android视频分割为多个文件

时间:2018-12-10 09:36:42

标签: android video android-mediarecorder

我有一个必须记录视频并将视频保存到文件块中的要求。录制时如何在不丢失视频帧的情况下将视频拆分为多个文件

3 个答案:

答案 0 :(得分:1)

不可能录制连续的视频而没有时间间隔,因为要录制MediaRecorder,必须访问摄像机硬件并在内部使用Camera.unlock()和Camera.lock()来控制访问。

更好的方法是在一个循环中录制视频(一个线程),或者使用两个线程并使用信号量实现,从而获得近50毫秒的时间...

通常时间间隔在1到2秒之间。

如果您需要更多详细信息,请评论我的帖子,我可以给您更多详细信息...

答案 1 :(得分:1)

可以使用Camera2 API,视频和音频编解码器以及MediaMuxer。基本上,编解码器将数据缓冲区发送到MediaMuxer,后者创建并写入.mp4文件。您可以随时开始将缓冲区写入另一个MediaMuxer,从而开始一个新文件。然后,以前的MediaMuxer可以关闭并保存其文件。有很多文档需要阅读,并且有些困难。例如,.mp4文件必须以关键帧开头。可以从编解码器请求关键帧,但是不会立即发生,因此在开始新文件之前,您必须等待关键帧。当然,您必须跟踪如何将数据写入文件。如果文件具有某种大小限制,则必须在达到该大小限制之前请求关键帧,以便为在关键帧出现之前将要到达的帧留出空间。并持续进行,但是根据您的应用程序要求,您可以使其正常运行。

答案 2 :(得分:0)

看看这个answer。这是一个工作示例,正在以分段文件的形式记录相机。