ios - 从管道读取 AV Assets

标签 ios cocoa posix avfoundation pipe

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

有人设法让 AVFoundation 从管道读取数据,或者更一般地说,让 AVFoundation 处理内存中的 mp4 文件吗?

谢谢。

最佳答案

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

关于ios - 从管道读取 AV Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018316/

相关文章:

c++ - 如何在另一个终端中从 C++ 打开和稍后关闭另一个程序?

c - 是否可以同时使用自定义 sigaction 信号处理程序和 pthread_sigmask?

javascript - 如何在钛(IOS)中定义窗口的模糊事件监听器?

c# - 如何避免 Xamarin 表单 iOS 中显示和隐藏 UI 控件的波动?

objective-c - Cocoa:测试 NSString 是不可变的还是可变的?

cocoa - 使用 setValue :forKey: against it's CoreData bound field 时 NSPopupButton 不更新

objective-c - 如何从 cocoa 应用程序启动无窗口和无控制台进程并与之通信?

api - fork() 与 CreateProcess()。系统调用与 API?

ios - 当观察者在 UITableViewHeaderFooter 子类中时 NSNotification 被多次调用

ios - 如何从 WatchKit Extension 调用 CoreData 代理框架?