使用Flash流式传输视频
我只是在这个问题上度过了一整天,恐怕我错过了一些东西。使用Flash流式传输视频
我在我的S3服务器上使用AVC编码有一个简单的mov/mp4文件,并且我有一个应该播放它的swf文件。我发现有两种方法可以做到这一点,如here所述。
第一个是:
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.play("http://url.path/movie.mov");
这工作,但它看起来像它下载的视频,一旦完成,将开始播放。
为了使用它的视频流也说,使用这样的:
nc.connect("http://url.path/");
var ns:NetStream = new NetStream(nc);
ns.play("movie.mov");
我在NetStream的构造函数该代码失败:
ArgumentError: Error #2126: NetConnection object must be connected.
问题:
- 这是这样做的正确方法还是我在代码中遗漏了一些东西?
- 我发现this thread,这让我非常伤心,但我建立了一些播放S#流媒体视频的HTML视频播放器,这是怎么回事?
- 读一点,看到它可能是因为h264格式,它只在最后发送元数据。这是正确的吗?将它转换成另一种格式就可以解决它?
- 所有的Flash流媒体教程假设我用RTMP协议存储我的视频,阅读了一下,看到我可以使用Adobe Media Server 5 on Amazon Web Services。我一定要吗?有没有免费的解决方案,或闪光只能流这个协议?
Thx。
为了您的方法有两种:
无论你的服务器需要被告知流MIME类型(我有S3没有经验,但很可能已经设置了常见的视频类型)或文件类型不是支持流式传输的类型(MOOV原子--meta数据 - 位于文件末尾而不是起始位置)。使用Adobe Media Encoder(或将该数据置于文件开头的其他编码程序)重新编码为.mp4(h.264编码)或.f4v(或.flv)。
这是用于流媒体服务器(Flash Media Server),因此您可以输入媒体服务器的地址:例如, “RTMP://媒体服务器/应用/ streamName中”。
1.它是一个在h.264中编码的mov文件(当我下载它时,它的下载格式为mp4)。而mime类型是video/mp4。 2.我必须使用这个吗? – shem 2012-08-14 19:55:38
服务器可能不会流式传输,因为它位于.mov容器中。我知道一些mp4文件在文件末尾有所有的元数据,这也可能是你的问题。我试着用Adobe Media Encoder将它重新编码为f4v或mp4,并完全抛弃mov容器。您也可以尝试将您的源文件从.mov重命名为.mp4 – BadFeelingAboutThis 2012-08-14 20:53:44
Thx作为评论 - 重命名和重新编码没有帮助,还有其他想法? – shem 2012-08-15 08:16:38
你看过Red5媒体服务器吗? http://www.red5.org/ - 它是开源的,可以免费使用。 – bigp 2012-08-14 14:10:05
你有没有想过这件事? – BadFeelingAboutThis 2012-08-20 17:08:35
还没有,我需要检查空气应用程序是否修复它。 – shem 2012-08-21 06:57:01