如何在不使用其Streaming服务器的情况下实现Adobe HTTP Streaming规范

Sco*_*ott 4 flash actionscript netstream http-streaming

从Flash 10.1开始,他们添加了通过appendBytes方法将字节添加到NetStream对象的功能(在此处描述http://www.bytearray.org/?p=1689).这一新增的主要原因是Adobe最终支持视频的HTTP流媒体.这很棒,但您似乎需要使用Adobe Media Streaming Server(http://www.adobe.com/products/httpdynamicstreaming/)从现有视频中创建正确的视频块,以实现流畅的流式传输.

我曾经试图在我交换NetStream对象的过程中做一个被黑客攻击的HTTP流媒体版本(类似于http://video.leizhu.com/video.html),但是这些块之间总会暂时停顿一下.使用新的appendBytes,我尝试使用前一个站点的两段视频进行快速模拟,但即便如此,跳过仍然存在.

有没有人知道如何形成两个连续的.FLV文件,以便NetStream对象上的appendBytes方法创建一个漂亮的平滑视频,而段之间没有明显的跳过?

Gra*_*ant 9

我能够使用Samuel描述的Adobe的文件打包工具来实现这一点.我没有使用NetStream对象,但我使用了OSMF Sample Player,我假设它在内部使用它.以下是不使用FMS的方法:

  1. http://www.adobe.com/products/httpdynamicstreaming/获取用于Http动态流的Adobe文件打包程序
  2. 在包含H.264/AAC的现有MP4文件上运行File Packager,如下所示:C:\ Program Files\Adob​​e\Flash Media Server 4\tools\f4fpackager> f4fpackager.exe --input-file ="MyFile.mp4" - - 段持续时间= 30

这将导致30秒长的F4F文件,还有F4X和F4M文件.F4F文件是您应该播放的正确分段(和碎片)MP4文件.如果要使用OSMF Player进行测试,请执行以下操作:

  1. 获取Apache服务器
  2. http://www.adobe.com/products/httpdynamicstreaming/获取适用于Apache的Adobe Http Origin模块
  3. 根据http://help.adobe.com/en_US/HTTPStreaming/1.0/Using/WS8d6ed60bd880807c48597a9e1265edd6cc0-8000.html安装模块
  4. 将F4F,F4X和F4M文件放入httpdocs下的vod目录中
  5. http://www.osmf.org/downloads/OSFMPlayer_zeri2.zip获取"用于HTTP动态流的OSMF示例播放器"
  6. 将Sample Player放在httpdocs目录中
  7. 从浏览器中的示例播放器加载html文件,例如http://localhost/OSMFPlayer.html
  8. 按弹出按钮并输入F4M文件的URL,它应该播放

因此,要回答原始问题,Adobe的File Packager是要使用的文件分割器,您不需要购买FMS来使用它,它适用于FLV和MP4/F4V文件.