现在H.264通过RTP传输时并没有进行差错控制,在接收端只是根据序列号来判断是否完整,现在想用前向纠错来 进行纠错,只是不知道该怎么做,?或是还有什么比较好的方法,望指教!

解决方案 »

  1.   

    顶个,不过跟H.264应该没关系的,望RTP高手 赐教了
      

  2.   

    我最近也在看这块RTP 基于的传输协议是UDP协议,RTP传输数据流RTCP 是控制传输质量控制?================================================
    前两天又看了下RTSP(实时流传输协议),是一个应用层协议。传输层使用UDP和TCP都可以具体是什么样一个概念,我还在看呢有大牛出来讲讲哦!!呵呵!
      

  3.   

    网络数据传输纠错一般通过校验来处理,
    有CRC-5 CRC-12 校验算法。这是检查发送端发送的网络数据包到接收端是否是正确的。typedef struct tagPack
    {
      int PackLength;
      char PackBuf[512];
      WORD CRC;
    }发送方有一个CRC,接受方收到以后,比较计算出的CRC和接收到的CRC是否一致即可判断网络是否出错
      

  4.   

    哎之前回了个你的帖子就觉得是同行,现在发现你这个帖子,更觉得是同行,你在用HIS的方案做视频传输吧
      

  5.   

    不是啊!!我也是刚做视频流传输不久,呵呵!满头包!!我现在在做一个视频流服务器,我在局域网内转发,传输层支持TCP和UDP,现在用的是TCP传输的,UDP传输时的问题现在也就在你问问的问题上。如果只是检查是否丢包,而不能把包找回来,感觉纠错没有太大作用
      

  6.   


    这个不太难,在发送方发包的时候,需要附带一个包的流水号,
    接收方一旦发现CRC校验不对,发送一个命令道发送方,
    通知重传该包即可。这是重传的命令格式
    typedef struct tagRepeatPackCmd
    {
       int PackSerialNo; // 重发的数据包序号
       int RepeatTimes;  // 重发请求的次数,控制重发,也可去掉
    } tRepeatPackCmd;
      

  7.   


    RTP和RTCP也是这种思路吗?RTCP进行验证,丢失时,通知通过RTP通道重传?
      

  8.   

    恩,我现在就是用那个RFC3984文档 来做拆包解包的,不过至于怎么处理丢帧,那个文档貌似没说明啊,我是用那个JRTPLIB 3.7.1版本库的,顺便再问下楼上,那个库支持对接收到的包进行乱序重排的功能吗?
      

  9.   

    序列化和包可达rtp去保证,开源库肯定做好了的,呵呵,我手里也没代码,公司前阶段做了一个,rtp传264,可以考虑做下ps封装,效果也不错。尽量不要加自己的帧头,而采用标准的,省的到时候通用播放器都解码不出来,这就比较被动了。