Streaming RTMP流媒体服务器实现:已传递connect/createStream/play消息序列,但flashplayer中没有视频/音频
你好强> 为流媒体AVC+AAC视频编写Streaming RTMP流媒体服务器实现:已传递connect/createStream/play消息序列,但flashplayer中没有视频/音频,streaming,flash,red5,rtmp,Streaming,Flash,Red5,Rtmp,你好 为流媒体AVC+AAC视频编写RTMP流媒体服务器。它可以与rtmpdump配合使用。但我不能强迫它在flowplayer和其他flash视频播放器中工作 握手后的消息序列类似于FMS/RED5/erlyvideo/haxevideo服务器:我尝试了很多变化 从Chrome调试控制台,我可以看到所有协商消息传递给flowplayer的内容。最后一个是onMetaData。然后是工作样本(rtmp://flash.tvwmedia.net/LiveVideo//Live300)获取NetSt
RTMP
流媒体服务器。它可以与rtmpdump
配合使用。但我不能强迫它在flowplayer和其他flash视频播放器中工作
握手后的消息序列类似于FMS/RED5/erlyvideo/haxevideo服务器:我尝试了很多变化
从Chrome调试控制台,我可以看到所有协商消息传递给flowplayer的内容。最后一个是onMetaData。然后是工作样本(rtmp://flash.tvwmedia.net/LiveVideo//Live300)获取NetStream.Buffer.Full
。我的服务器上的流媒体无法获得它
我从包含sps/pps的AVC头消息开始。之后,第一个AVC图片通过。后-AAC标题和AAC示例。然后是AVC/AAC样本。通过rtmpdump
-我在退出时工作flv。但是flowplayer和其他人不起作用
rtmpdump
的。它包含协商信息和一些最初的媒体样本
更新: 我修复了一个错误:“系统”消息使用了错误的chunk stram ID(例如,
SetChunkSize
)。但它仍然没有播放。
这里是,几乎与wowza产品相同。还有wowza/red5日志(要比较)
我检查了以下内容,它们在RTMP服务器中有所不同:
createStream
上)connect
呼叫的不同回答(来自多个服务器)57 00
,57 01
视频包(视频信息/命令帧)更新: 我已经按照彼得的建议通过了Flazr。结果是一样的。我找不到解决方案:两个日志看起来都不错。也许我只是看不到简单的东西
谢谢我不确定问题出在哪里,但您需要确保您正在执行以下操作:
1.发送ping
2.处理字节读/写报告
从rtmpdump日志中,您的流看起来不错,我没有注意到任何明显的变化。还有两个项目可以帮助您根据您的经验,无论是C++或露比。Izumi服务器相当简单,如果您是Ruby开发人员,那么它可能更容易使用。
如果你是C++的家伙,那么看看RTMPd,安德列知道服务器端闪存过程比我知道的任何其他人更多。
最后,如果您想要另一个开源Java播放器/服务器实现来学习您 我可以看看Flazr
我是蒙丹提到的Flazr(thx Mondain!)的作者
我想向您介绍Flazr的“代理服务器”功能。您可以将flash player(或rtmpdump)连接到代理服务器,并将代理服务器指向您的服务器。如果您将日志设置为调试模式,您将获得两个方向上所有RTMP消息的非常详细的日志跟踪。这在过去对我比较Flazr与其他实现(如Red5)很有帮助。希望这有帮助。谢谢您的回答!现在尝试通过rtmpd客户端(感谢Eugen Andrei Gavriloaie)。我也会检查FLASR,如果这不会给出解决方案。HEH,也无法找到FLAZR的答案:)在C++ RTMP服务器谷歌组中可以找到更多的细节:谢谢!逐个检查服务器列表)如果所有其他操作都失败,请确保握手正确。我的假设是,握手中有字节,玩家可以使用这些字节来决定事情是否应该正常进行。例如,如果握手不完全符合玩家的预期,h.264将无法正常工作。是的,H264绝对正确!看起来flash player只能接受FLV1视频,以防旧的握手完成。我已经实现了新版本,现在它运行良好。非常感谢。我很高兴听到它起作用了!!这对我们来说真是一个头疼的问题。@PaulGregoire:天哪,我不知道握手必须以一种特殊的方式进行,而这种方式不是规范的一部分,才能让h264正常工作。一个星期以来,我一直在拼命工作,准备放弃这个项目。非常感谢。