我试图哄骗AV Foundation从内存中的mp4文件中读取(不使用中间写入磁盘解决方案)。我尝试了自己的自定义URL协议,但由于AV Foundation没有真正使用URL加载系统,因此失败了。我的下一个解决方案是尝试构建POSIX管道并让AV Foundation层从命名管道文件加载资产(即从url“file:///path/path/.../path/mp4file.pipe”)用mkfifo()创建的。这在尝试通过通常的fopen()调用读取文件时有效,但在AVURLAsset initWithURL:call中失败(崩溃)。
任何人设法让AVFoundation从管道中读取,或者更普遍的是,让AVFoundation在内存中使用mp4文件?
感谢。
答案 0 :(得分:3)
当读取MP4文件时,AVFoundation将使用搜索,这就是您显然无法使用管道的原因。我担心您唯一的选择是将文件放入磁盘或使用小型HTTP服务器并利用HTTP Live Streaming。
答案 1 :(得分:1)
我为此目的使用了mongoose。它是一个易于调整的小型HTTP服务器,基本上只位于一个文件中。