在一对一直播app源码开发中,

摄像头帧数25帧,

一张图片: 16+40ms 需要去掉一半帧数

1256+1216 一共860ms

25帧需要1s以内处理

可以隔帧丢帧,如果丢10帧,解10帧,画面会跳变,不连续

如果摄像头25帧,每张图片有40ms时间,算法时间超过这个, 就会产生很大延时。

如果摄像头15帧,每张图片有70ms时间,算法时间超过这个, 就会产生很大延时。

每隔一帧算法处理,也能减少延时。

可见,在一对一直播app源码开发中,摄像头设置帧率,是有效的。

一对一直播app源码开发,视频流延时解决方案的具体实现如下:

#!/usr/bin/env Python
# coding=utf-8
import os
import sys
import threading
import timecurrent_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.append(current_dir)
sys.path.append(current_dir+'/hik_dll/')from ctypes import *import time
import numpy as np
import cv2
import structimport datetimefrom numba import jitcam_dict={}index=0def add_timestr(self, img):time_str = (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S")color = (0, 0, 0)if np.mean(img[700:780, 900:950]) > 128:color = (0, 0, 0)cv2.putText(img, time_str, (100, 70), cv2.FONT_HERSHEY_SIMPLEX, 1.4, color, 2)return img# @jit
def trans(data,size,height,width):bbb = string_at(data,size)nparr = np.fromstring(bbb, np.uint8)r = nparr.reshape(height,width, 3)return r
def str2char_p(str_v):pStr = c_char_p( )pStr.value = str_vreturn pStr
def callb_stream(data,size,cam_no,height,width):r = trans(data, size,height,width)# print(1, counter)global indexindex+=1# if index%2<1:#     return# cv2.imwrite(filedir+str(index)+".jpg",r)r=cv2.cvtColor(r, cv2.COLOR_RGB2BGR)r=add_timestr(1,r)counter = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')print(counter, index)cv2.imshow(str(cam_no), r)cv2.waitKeyEx(1)# k = cv2.waitKey(400) & 0xFF# if k == 13:#     cv2.waitKey()# elif k == ord('m'):#     cv2.waitKey()# elif k == 32:  # 空格#     cv2.waitKey()def play_video():dll = CDLL(r"./hik_client.dll")dll.testchar.restype = c_char_pa = dll.testchar(11)b = string_at(a, 20)print(b)CMPFUNC = CFUNCTYPE(c_void_p, c_void_p, c_int, c_int, c_int, c_int)m_callback = CMPFUNC(callb_stream)# filename=r"D:\project\CV_client\py_client\camera_pic\sh_wuding\video\201807111600.dat"# filename=r"D:\project\CV_client\py_client\camera_pic\bj_ban01\video\201807111500.dat"filename = r"D:\project\CV_client\py_client\camera_pic\bj_800\201807240000.dat"# filename = r'rtsp://admin:sbdwl123@192.168.25.45:554/h264/ch1/main/av_stream'filename = bytes(filename, encoding="utf8")# filename = b"D:\\data\\test_video\\play_failed/201805032342.dat"dll.play_url(str2char_p(filename), m_callback)
if __name__ == '__main__':dll = CDLL(r"hik_client.dll")dll.testchar.restype = c_char_pa = dll.testchar(11)b = string_at(a, 20)print(b)CMPFUNC = CFUNCTYPE(c_void_p, c_void_p, c_int, c_int, c_int, c_int)m_callback = CMPFUNC(callb_stream)# filename=r"D:\project\CV_client\py_client\camera_pic\sh_wuding\video\201807111600.dat"# filename=r"D:\project\CV_client\py_client\camera_pic\bj_ban01\video\201807111500.dat"filename=r"D:\project\CV_client\py_client\camera_pic\bj_800\201807240000.dat"filename=r'rtsp://admin:sbdwl123@192.168.25.47:554/h264/ch1/sub/av_stream'filename=bytes(filename, encoding="utf8")# filename = b"D:\\data\\test_video\\play_failed/201805032342.dat"dll.play_url(str2char_p(filename), m_callback)

以上就是一对一直播app源码开发,视频流延时解决方案的全部内容了。

一对一直播app源码开发,视频流延时解决方案相关推荐

  1. 一对一直播app源码开发,推流技术的实现

    在说一对一直播app源码推流技术之前,先说一对一直播app源码推流的过程:采集-->前处理-->编码-->推流--->流分发--->播放. 1.采集:音视频采集 pc段屏 ...

  2. 一对一直播app源码实现短信验证码发送功能的详细步骤

    以前很多的一对一直播app源码,是通过用户注册时设置账号和密码进行登陆的,但是这样有非常明显的缺点,时间久了之后,很多用户会忘记账号或密码,找回的步骤也会比较繁琐.随着手机实名化的进行,越来越多的用户 ...

  3. 一对一直播软件源码开发,一对一直播怎么开发

    直播行业自2016年的"千播大战",时至今日,直播平台内容同质化现象严重,反倒是一对一直播软件如"雨后春笋"般进入了人们的视野.一对一直播软件源码开发核心业务模 ...

  4. 5G背后那些你不知道的事儿,一对一直播app源码加速系列

    对于5G网络想必大家都不会陌生了,它已经是今年聊天不可缺少的话题.5G时代的到来不仅仅代表了互联网尖端技术的发展,更是说明了时代的洪流势不可挡.那么我们都在期待的5G到底是什么呢?且听我慢慢道来~ 5 ...

  5. 视频直播APP源码开发iOS音频播放流程

    视频直播APP源码开发iOS音频播放流程 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的, ...

  6. 一对一直播软件源码开发,iOS视频采集的实现过程

    在一对一直播软件源码日益火热的发展形势下,音视频开发(采集.编解码.传输.播放.美颜)等技术也随之成为开发者们关注的重点,本系列文章就音视频开发过程中所运用到的技术和原理进行梳理和总结. 认识 AVC ...

  7. 一对一直播app源码,Aandroid动态切换主题色

    一对一直播app源码,Aandroid动态切换主题色实现的相关代码 点击按钮变量存储切换状态: override fun onClick(v: View?) {when (v?.id) {R.id.b ...

  8. 一对一直播系统源码开发,礼物打赏中追加、连击等功能的实现

    在一对一直播系统源码开发中,多种礼物打赏方式,才更能吸引用户的眼球,所在礼物打赏功能开发时,要实现追加.连击等功能. 一对一直播系统源码的礼物追加.连击功能是如何实现的呢?首先礼物从左边滑出,做一个连 ...

  9. 仿比心一对一直播软件源码开发,消息通知功能的实现

    在仿比心一对一直播软件源码中,消息功能起着非常重要的作用,非实时性的社交都可以通过消息功能来实现,在即时消息模块有两个基本功能就是发送消息和接收消息.我们定义如下通信指令来实现这两个功能: Push ...

最新文章

  1. POJ 1743 (后缀数组+不重叠最长重复子串)
  2. 【JDBC】Eclipse连接Mysql
  3. 山西专科学校计算机专业排名,河南单招计算机专业专科学校排名
  4. mybatis 关联查询 延迟加载
  5. Hbase compact入门
  6. 计算机机房使用多大的光纤引入,弱电施工如何确定光纤使用的芯数
  7. word批量打印助手_如何批量打印数十份甚至上百份Word文档
  8. 产品经理第一件事-系统背景研究
  9. 根据眼睛焦点分级绘制3D效果的设想
  10. python学习----简易版非诚勿扰
  11. JavaSE第04篇:Java基础语法之循环结构
  12. 【搞定CAD】键盘“组合键”应用小技巧
  13. 【财务分析】ERP软件的财务管理系统具有哪些功能?
  14. 解决win10 自动同步时间灰色
  15. matlab的数值积分
  16. 计算机毕业设计SSM电力公司员工安全培训系统【附源码数据库】
  17. 沈从文——一个战士不是战死沙场,便是回到故乡
  18. 习题9-1 时间换算
  19. ZUI易入门Android之Bitmap(一)
  20. H.266/VVC技术学习:帧内预测之PDPC技术

热门文章

  1. 数据结构和算法概念理解
  2. ppt html结构,HTML文档的基本结构.ppt
  3. SQLyog 查询表,数据表,查询结果字体变大,表变大
  4. 基于RFID技术的酒类资产管理防伪溯源防串货系统--新导智能
  5. 【Multisim仿真74LS160同步加法0-28】2022-4-22
  6. 方差分析中的多因子交互作用
  7. 风变编程存爬虫测单词小工具_风变编程之爬虫学习感悟一二
  8. Android lights system
  9. 三相桥式全控整流电路simulink仿真_不可控整流电路知识介绍
  10. latex 伪代码 elseif怎么写