我想写一个连续捕获视频的iphone应用程序,h.264以10秒的间隔对它们进行编码并上传到存储服务器。这可以用avassetwriter完成,我可以继续删除旧文件,因为我创建了新文件。但是,由于闪存具有有限的写周期,因此该方案将在通过闪存几千次写入周期后破坏闪存。有没有办法将avassetwriter重定向到内存,或在iPhone上创建一个ram驱动器?
谢谢!
答案 0 :(得分:1)
是avassetwriter是进入硬件解码器的唯一方法。并且只是回读文件,而它的书面文件没有给你moov原子,所以avfoundation或基于mpmediaplayer的玩家将无法读回来。你只有几个选择,定期停止asassetwriter并在后台线程上写入文件,有效地将你的电影分割成更小的完整文件。或者你可以在服务器端处理不完整的mp4,你必须解码原始的nalu并重新创建丢失的moov原子。如果您使用ffmpeg mov.c是要查看的源。这也是一个不完整的mp4文件会失败。
答案 1 :(得分:-1)
为什么要将数据写入文件?难道你不能只将捕获数据复制到内存中,然后从内存中将其推送到服务器吗?