8

我想编写一个连续捕获视频的 iphone 应用程序,h.264 以 10 秒的间隔对其进行编码并上传到存储服务器。这可以通过 avassetwriter 完成,并且我可以在创建新文件时继续删除旧文件。然而,由于闪存的写入周期有限,这种方案会在通过闪存的数千个写入周期后破坏闪存。有没有办法将 avassetwriter 重定向到内存,或者在 iphone 上创建一个 ram 驱动器?

谢谢!

4

2 回答 2

1

是的,avassetwriter 是访问硬件解码器的唯一方法。并且在写入文件时简单地读回文件不会给你 moov 原子,因此基于 avfoundation 或 mpmediaplayer 的播放器将无法读回它。您只有几个选择,定期停止 asassetwriter 并在后台线程上写入文件,有效地将您的电影分割成更小的完整文件。或者您可以在服务器端处理不完整的 mp4,您将不得不解码原始 nalu 并重新创建丢失的 moov 原子。如果您使用 ffmpeg mov.c 是要查看的源代码。这也是一个不完整的 mp4 文件会失败。

于 2012-12-13T17:47:56.787 回答
-2

为什么要将数据写入文件?你不能把捕获的数据复制到内存中,然后从内存中推送到服务器吗?

于 2012-11-27T02:46:55.110 回答