mobile CCTV,mobile surveillance,police body worn cameras

标题: 解析视频时花帧问题 [打印本页]

author: zycfl    time: 2019-11-22 11:24
标题: 解析视频时花帧问题
请问一下,当调用AfterRecv获取数据、发送、远端ffmpeg解析。但当SAV_Packet结构中iStreamIndex=65535时,出现花帧。请问iStreamIndex是什么意思,为什么会出现这种现象?
author: besovideo    time: 2019-11-22 11:28
是用CUSDK的?要用我们自己的SDK解码。
另外,请描述下您开发的上下文环境。
我们的设备模拟器用起来没?典型产品&方案及常用技术资料,
http://www.besovideo.com/news/174.html


author: zycfl    time: 2019-11-22 11:33
用的libBVCU_G1A_20190708_1530里的库,AfterRecv后获取的编码数据不能直接用ffmpeg解码吗?请问你所指的SDK是什么意思?
author: besovideo    time: 2019-11-22 11:39
那个就是我们说的CUSDK。您先用我们的代码都跑起来,然后再测试ffmpeg。

author: zycfl    time: 2019-11-22 11:48
我使用的VS2010开发,调用libBVCU_G1A_20190708_1530里的库文件,流程是登录你们的服务器-->获取终端列表-->在线时获取视频编码数据-->发送到远端客户端解析(用户自己的客户端)。
在OnAfterRecv中使用TRACE打印:
ss.Format("TYPE:%d,LEN:%d,PICT:%d\r\n",pPacket->iFlags,pPacket->iDataSize,pPacket->iStreamIndex);
TRACE(ss);
当出现iStreamIndex = 65535时ffmpeg解析就花帧
TYPE:0,LEN:3220,PICT:0
TYPE:0,LEN:3338,PICT:0
TYPE:0,LEN:2960,PICT:0
TYPE:0,LEN:4717,PICT:65535
TYPE:0,LEN:3814,PICT:0
TYPE:0,LEN:3718,PICT:0
TYPE:0,LEN:3587,PICT:0
TYPE:0,LEN:2981,PICT:0
TYPE:0,LEN:4246,PICT:0
author: besovideo    time: 2019-11-22 11:50
会不会是网络自身的问题呢?
用我们标准的客户端软件smarteye client/监视器 接收视频,看看是否会花屏?

author: zycfl    time: 2019-11-22 16:14
我重新试了一下,如果stRender.hWnd = NULL(stRender.rcDisplay =(0,0,0,0)) 就会出现iStreamIndex = 65535,转发出去的视频帧就会花屏。smarteye client/监视器也是一样。
author: besovideo    time: 2019-11-22 16:40
用我们的smarteye监视器也花屏,那就是网络的问题了,不能简单的从代码里面去看。

author: zycfl    time: 2019-11-22 16:53
但是我是把stRender.hWnd = NULL(stRender.rcDisplay =(0,0,0,0)) 以后出现才出现的问题,如果把stRender.hWnd =GetSafeHwnd(),就不会出现。
author: besovideo    time: 2019-11-22 16:56
我觉得首先验证您的服务器是否OK。
先不要用代码,就用我们标准的MPU/MCP做设备,发您服务器,看看各种分辨率是否会花屏。

用安卓录传+公网对讲软件MCP APP(按公安部一所GA/T 947-2015单警视音频执法记录仪规范标准编写)来仿真实际4G图传设备(4G智能安全帽、4G执法记录仪、布控球、车载监控NVR/DVR、无人机HDMI 4G图传等)进行系统测试(录像-实时图传-公网对讲-定位轨迹-抓拍上传,并融合了公网对讲-警用微信-警讯发布,双向视频通话等功能),提供包含所有软件(服务器、客户端、SDK、用户手册、工具软件、固件等)的开放下载的网盘地址,熟悉平台操作,自建服务器平台等,全部开放免费下载使用:
http://www.besovideo.com/news/44.html

http://up.besovideo.com:7780/MCP.apk
MCP=MPU(执法仪947规范录传-编码+推流)+MCU(取流+解码,即手机客户端功能)+公网对讲PoC(双向视频对讲)+警用微信(警用多媒体通信,警讯发布)

MCP APP使得您的安卓设备(手机)既可做4G摄像头供客户端浏览,亦可做客户端去浏览其它设备的实时视频,还兼有对讲机+微信的功能



author: zycfl    time: 2019-11-22 17:13
可能我没说清楚,我们的服务器正常,有其他终端在正常运行。现在我将smarteye client改的转发应用和我的服务端软件放在同一台PC上,两种之间不会有网络问题,除去通过您们服务器转发给我的数据中的掉包现象外。现在还多了一种iStreamIndex = 65535的数据包,解析花屏的情况。经我反复测试,这种现象发生在我将stRender.hWnd = NULL后,OnAfterRecv返回的SAV_Packet当iStreamIndex = 65535解析必花屏。当stRender.hWnd不为空时,就么有这种现象。
author: fanghj90    time: 2019-11-22 17:30
zycfl post on2019-11-22 17:13
可能我没说清楚,我们的服务器正常,有其他终端在正常运行。现在我将smarteye client改的转发应用和我的服 ...

您好,iStreamIndex 不等于0时,表示当前包和前一个包不连续,中间有丢包。
有丢包时,如果不是关键帧,继续解码播放会出现花屏。
我们客户端的处理策略是,出现丢包时,如果没有下一个关键帧来,就暂停播放。





欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/) Powered by Discuz! X3.2