Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Streaming RTMP流媒体服务器实现:已传递connect/createStream/play消息序列,但flashplayer中没有视频/音频_Streaming_Flash_Red5_Rtmp - Fatal编程技术网

Streaming RTMP流媒体服务器实现:已传递connect/createStream/play消息序列,但flashplayer中没有视频/音频

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

你好

为流媒体AVC+AAC视频编写
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和其他人不起作用

  • 有什么问题吗?
  • 流是否有其他要求?
  • h264流中断是否可能导致flashplayer停止播放?是否可以从flash player获取系统消息,这些消息说明了这一点?
  • 希望,你能帮助我:)我已经和这个问题斗争了两个多星期,现在我不知道我可以尝试什么变体

    这是来自
    rtmpdump
    的。它包含协商信息和一些最初的媒体样本


    更新:

    我修复了一个错误:“系统”消息使用了错误的chunk stram ID(例如,
    SetChunkSize
    )。但它仍然没有播放。 这里是,几乎与wowza产品相同。还有wowza/red5日志(要比较)

    我检查了以下内容,它们在RTMP服务器中有所不同:

  • 不同的ChunkStreamId(对于非系统流)
  • 不同的StreamID(在
    createStream
    上)
  • 128b和4Kb块大小
  • 解包/打包块头(在上一个日志中有解包,在新打包中)
  • connect
    呼叫的不同回答(来自多个服务器)
  • 使用
    57 00
    57 01
    视频包(视频信息/命令帧)
  • 在每张图片前添加09(访问单元分隔符)NALU
  • 音频/视频DCR/数据包的不同顺序
  • 仅音频/仅视频
  • 但是,对所有这些进行调优后,我的服务器仍然无法正常工作:)

    有什么办法解决这个问题吗?


    更新:

    我已经按照彼得的建议通过了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正常工作。一个星期以来,我一直在拼命工作,准备放弃这个项目。非常感谢。