博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8148 8168 中移植live55 出现except rtsp 中途莫名的断流
阅读量:6800 次
发布时间:2019-06-26

本文共 4354 字,大约阅读时间需要 14 分钟。

  在解码中,接了浙江宇视的ipc相机,解码一般就挂了,vlc 也是中途断流.费解?

vlc异常信息如下:

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

direct3d warning: trying surface pixel format: YV12

main error: Failed to resize display

main error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 600 ms)

main error: ES_OUT_RESET_PCR called

live555 warning: no data received in 10s, eof ?

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

packetizer_h264 warning: waiting for SPS/PPS

direct3d warning: trying surface pixel format: YV12

main error: Failed to resize display

main error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 600 ms)

main error: ES_OUT_RESET_PCR called

live555 warning: no data received in 10s, eof ?

相机类型型号:

 

百度了下,网友中有分析说是两个方面的问题,1pts 解码显示太慢,2是两系统时钟突变时间戳对不上号.我猜,呵呵,有可能是加了私有协议

 

 更新:后面和常熟的顾哥网友聊聊发现他也遇到过类似情况,也还没解决,有两种情况一个是有些相机确实会断流,另外一种情况是live555里面貌似有bug 导致teardown

rtsp的 默认端口地址是:

address = *(addresses.firstAddress());

portNum = 554; // default value

 

 

2015-1-7 貌似有网友出现过这种情况:

在基于TI DM8168 平台上移植live555  进行视频直播,DM8168采集的后的图像,经M3_video编码为H264视频流(编码后也是一帧一帧的数据),碰到以下问题:

    (1): 问题: 
          用VLC作为RTSP客户端连接DM8168, 只能播放开始几帧,之后画面变乱,并无法播放;
    (2): 原因:
          H264编码后的帧只有第一帧是IDR帧,之后没有IDR帧.
    (3): 解决办法:
          修改DM8168建立encode link时的参数,以便周期的产生IDR帧:

  1.                    encPrm.chCreateParams.defaultDynamicParams.intraFrameInterval = 25;
  2.                    encPrm.chCreateParams.encodingPreset = XDM_USER_DEFINED;
复制代码

  (1): 问题

         用科达NVR作为客户端连接DM8168,发现NVR的视频画面和录像会出现停止,并且提示“前端
         掉线”的告警,过了1分钟后又开始正常显示和录像.
  (2): 原因
        在liveMedia/RTSPServer.cpp中将DEBUG宏打开,跟踪NVR整个连接过程,结果发现如下信息:

  1. RTSP client session (id "555C5F62", stream name "id1") has timed out (due to inactivity)
复制代码

       而正常的连接打印为:

  1.           RTSP client session (id "023C11D5", stream name "id1"): Liveness indication
  2.          RTSP client session (id "023C11D5", stream name "id1"): Liveness indication
复制代码

      意思就是一旦RTSP的客户端连接成功后,需要周期的想服务端发送心跳包,如果超过某个设定的时间,

       RTSP 服务端则会主动关闭这个客户端的连接,因此导致科达的NVR被关闭,之后又重新连接,因此导致
       视频显示和画面中断又继续。
   (3): 解决办法:
          调整RTSP服务端的超时时间值:fReclamationTestSeconds,而这个值在
         liveMedia/include/RTSPServer.hh有初始值:

  1.          static RTSPServer* createNew(UsageEnvironment& env, Port ourPort = 554,
  2.                                                      UserAuthenticationDatabase* authDatabase = NULL,
  3.                                                       unsigned reclamationTestSeconds = 65);
复制代码

        在构造函数createNew的实现中,在初始化参数列表亦可以进行修改,

  1.          RTSPServer::RTSPServer(UsageEnvironment& env,
  2.                                  int ourSocket, Port ourPort,
  3.                                  UserAuthenticationDatabase* authDatabase,
  4.                                  unsigned reclamationTestSeconds): Medium(env), ............... fReclamationTestSeconds(reclamationTestSeconds)
复制代码

因此,在自己的应用程序创建 RTSPServer的时候,修改这个值:

  1.                  // Create the RTSP server:
  2.                   RTSPServer* rtspServer = RTSPServer::createNew(*env, 8554, authDB, 100);
复制代码
http://kuafu80.blog.163.com/blog/static/122647180201391193917936/
http://www.61icbbs.com/forum.php?mod=viewthread&tid=9810

 

http://kuafu80.blog.163.com/blog/static/122647180201391193917936/

问题还没解决!!!

转载于:https://www.cnblogs.com/pengkunfan/p/4160410.html

你可能感兴趣的文章
Netflix实时流处理平台Keystone介绍
查看>>
一文带你快速读懂.NET CLI
查看>>
深入探索JVM自动资源管理
查看>>
实现TeX的算法:回首编程技术的过去三十年
查看>>
re:Invent大会第四天:为什么Lambda值得你更多关注?
查看>>
B端大数据应用的架构实践与思考
查看>>
Cascade:自动化测试“旅程”
查看>>
2018年十大云宕机事故盘点:主流无一幸免!
查看>>
美团开源实时监控系统 CAT 3.0 发布:多语言客户端及多项性能提升
查看>>
开源项目koa-router被叫卖,周下载10W+只要5000美元
查看>>
360首席安全官谭晓生宣布离职
查看>>
微软正式发布Azure Functions 2.0
查看>>
Swift 4.2进入最后开发阶段,为Swift 5铺平道路
查看>>
爱立信电信软件的持续交付
查看>>
Oracle提醒Java开发者们,很快就没有浏览器可以运行Applets了
查看>>
《The Age of Surge》作者访谈
查看>>
GitHub发布开源许可证使用情况
查看>>
网易云基于Prometheus的微服务监控实践
查看>>
mongodb常用命令
查看>>
Java 数据类型和运算符
查看>>