从 Flash 10.1 开始,他们增加了通过 appendBytes 方法将字节添加到 NetStream 对象的功能(在此处描述 http://www.bytearray.org/?p=1689 )。此次添加的主要原因是 Adobe 终于支持视频的 HTTP 流式传输。这很棒,但您似乎需要使用 Adobe Media Streaming Server (http://www.adobe.com/products/httpdynamicstreaming/) 从现有视频创建正确的视频 block ,以实现流畅的流式传输。
过去我曾尝试做一个被破解的 HTTP 流式传输,在其中我换掉了 NetStream 对象(类似于这里的 http://video.leizhu.com/video.html ),但 block 之间总是会有短暂的停顿。使用新的 appendBytes,我尝试对来自上一个站点的两个视频部分进行快速模拟,但即便如此,跳过仍然存在。
有谁知道需要如何格式化两个连续的 .FLV 文件,以便 NetStream 对象上的 appendBytes 方法创建一个流畅的视频,而片段之间没有明显的跳跃?
最佳答案
我能够使用 Samuel 描述的 Adobe 的 File Packager Tool 来完成这项工作。我没有使用 NetStream 对象,但我使用了我假设在内部使用的 OSMF 示例播放器。以下是不使用 FMS 的方法:
C:\Program Files\Adobe\Flash 媒体服务器 4\tools\f4fpackager>
f4fpackager.exe --input-file="MyFile.mp4"--segment-duration=30
这将产生 30 秒长的 F4F 文件,以及 F4X 和 F4M 文件。 F4F 文件是您应该播放的正确分段(和碎片)的 MP4 文件。
如果您想使用 OSMF 播放器对此进行测试,还请执行以下操作:
因此,要回答最初的问题 Adobe 的 File Packager 是要使用的文件拆分器,您无需购买 FMS 即可使用它,它适用于 FLV 和 MP4/F4V 文件。
关于actionscript - 如何在不使用其 Streaming 服务器的情况下实现 Adobe HTTP Streaming 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4443146/