我正在尝试在 Flash 播放器上播放具有指向外部电影的 DREF 原子的视频文件。
DREF 框具有 URL 值并指向具有 mdat 的外部视频文件。但是 Flash 视频播放器(netstream 对象?)无法加载外部文件。在过去的几周里,我一直在努力解决这个问题,任何提示都会有所帮助。
提前致谢
编辑:从这篇文章看来,Flash 中似乎只有字节访问 FLV 文件,所以我假设您将不得不使用外部(Java、服务器端等)工具来解决您的问题。 Adobe NetStream.appendBytes 文档。
这不是对您的请求的直接响应,但可能有助于理解和使用 Quicktime 标头数据。
您可以使用此 Java 程序查看标头中的内容,并提取数据(它有点旧,但可能仍然有效)。
对于您的项目,您可能会受益于随附的 Quicktime“扁平化器”,它将所有外部数据整合到一个 Quicktime 文件中。
如果您只是在寻找 Apple Quicktime 标头文档,目前可以在此处找到它们。
如您所知,Ganesh 在 Flash 运行时不直接支持 dref atom,您可以通过 flash 流式传输它的唯一方法是在包含 DREF atom 的源文件的帮助下创建一个 FLV 标头,并以某种方式合并 mp4 文件 mdat带有 FLV 标头。然后你就可以运行appendByte
NSStream 的序列了。
您可以查看以下参考资料,了解如何通过操作脚本代码实际实现它:
解析 F4f 原子(F4F 文件遵循与 mp4-iso-14496 几乎相同的规范)并转换为 FLV 头(http 动态流方式)
OSMF http 动态流代码库
一个以 MKV 为文件作为源并通过 AS3 在 flash 中播放的开源项目NSStream.appendByte()
。MKV 加载器项目的源代码存储库