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



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

如果您使用Camera2 API、视频和音频编解码器以及MediaMuxer,这是可能的。基本上,编解码器将数据缓冲区发送到MediaMuxer,后者创建并写入.mp4文件。在任何时候,您都可以开始将缓冲区写入不同的MediaMuxer,从而启动一个新文件。然后,上一个MediaMuxer可以关闭并保存其文件。有很多文档需要阅读,也有一些困难。例如,.mp4文件必须以关键帧开头。可以向编解码器请求关键帧,但这不会立即发生,因此必须等待关键帧后才能启动新文件。当然,您必须跟踪必须如何将数据写入文件。如果文件有某种大小限制,则必须在达到该限制之前请求一个关键帧,以便为将在关键帧出现之前到达的帧留出空间。它还在继续,但根据你的应用程序需求,你可以让它很好地工作。

不可能在没有时间间隔的情况下录制连续视频,因为录制MediaRecorder必须访问相机硬件,并在内部使用camera.ulock((和camera.lock((来控制访问。

更好的方法是在一个循环中录制视频(对于一个线程(,或者使用两个线程,信号量实现获得近50ms的时间。。。

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

如果你想要更多的细节评论我的帖子,我可以给你更多的细节。。。

看看这个答案。这是一个工作样本,它是在分段文件中记录相机。

最新更新