3

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

正如任何人设法让 AVFoundation 从管道中读取,或者更一般地说,让 AVFoundation 与内存中的 mp4 文件一起工作?

谢谢。

4

2 回答 2

3

读取 MP4 文件时,AVFoundation 将使用搜索,这就是为什么您显然不能使用管道的原因。恐怕您唯一的选择实际上是将文件放入磁盘或使用小型 HTTP 服务器并利用 HTTP Live Streaming。

于 2012-10-23T17:06:51.837 回答
1

我为此目的使用了猫鼬。它是一个小型、易于适应的 HTTP 服务器,基本上只位于一个文件中。

于 2012-10-23T17:13:52.077 回答