2012-10-22 92 views
2

我试图哄AV基金会从内存中的mp4文件中读取(不使用中间写入磁盘解决方案)。我尝试了自己的自定义URL协议,因为AV Foundation没有真正使用URL加载系统,所以失败了。我的下一个解决方案是尝试构建一个POSIX管道,并让AV Foundation层从一个命名管道文件(即url“file:///path/path/.../path/mp4file.pipe”)加载一个资源这是用mkfifo()创建的。当试图通过通常的fopen()调用读取文件时失败,但失败(伴随着崩溃)AVURLAsset initWithURL:调用。从管道读取AV资产

当任何人设法让AVFoundation从管道中读取,或者更一般地说,让AVFoundation能够在内存中使用mp4文件?

谢谢。

+0

@stackmonster:我只能在github上找到TSLibraryImport,它处理从iPod导入用户库的过程。你有任何机会的链接。感谢您的回答。 – Cthutu

+0

你能够更具体吗?我似乎无法找到任何处理从管道或内存加载的代码。谢谢。 – Cthutu

回答

3

当读取MP4文件时,AVFoundation将使用查找,这就是您显然无法使用管道的原因。恐怕您唯一的选择是将文件放入磁盘或使用小型HTTP服务器,并利用HTTP Live Streaming。

1

我为此使用了mongoose。它是一个小巧,易于使用的HTTP服务器,基本上只能放在一个文件中。