- 博客(147)
- 资源 (24)
- 收藏
- 关注
原创 cjson 创建layui 目录树
#include "sys_inc.h"#include "cJSON.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include "cJSON.h"typedef struct UAXCatalog UAXCatalog_t;struct UAXCatalog{ uint32_t parental; char name[64]; //设备名称和别名 char
2024-05-14 04:07:42
629
原创 解决GB28181网络抖动问题
晚到的包,但还在有效期内,在start之前,需要更新start(首部增加)*晚到的包,但还在有效期内,无需更新end start(中间增加)*新一次传输的开始,丢弃QOS中之前遗留的包。*正常的先后顺序,需要更新end (尾部增加)*等待一定时间如果超时丢弃该包。*这种情况下说明QOS队列被充满。*超时后偏移到下一个包中继续输出。*大于结束时间 小于空间做大值。/*上次该序号未使用*/*最后输出包的序号和开始之间。*开始时间和结束数字之间。*晚到的包,不在有效期内。* 是否已经接收到数据。
2024-05-11 22:29:14
1025
原创 h265 1080 2k 4k 分辨率解析
case 66:break;case 77:break;case 88:break;case 100:break;case 110:break;case 122:break;case 144:break;default:break;nZeroNum++;i++)dwRet += 1;i++)
2024-04-16 21:08:36
700
原创 GB28181 2022 下联检测项
的 IPC 设备发送 SVAC 编码配置获取指令,的 IPC 设备发送 SVAC 解码配置获取指令,的 IPC 设备发送 SVAC 编码配置指令,视频。的 IPC 设备发送 SVAC 解码配置指令,视频。的 IPC 设备发送前端 OSD 配置获取指令,的 IPC 设备发送前端 OSD 配置指令,视频。中 IPC 设备的看守位信息,视频监控联网。中 IPC 设备的巡航轨迹列表,视频监控联。中 IPC 设备的巡航轨迹,视频监控联网测。的 IPC 设备发送设备信息查询指令,视频。
2024-02-17 17:10:31
1061
原创 GB/28181 2022 上联检测项
台的标准 IPC 发送前端 OSD 配置获取指令,台的标准 IPC 发送 SVAC 编码配置指令,受。台的标准 IPC 发送 SVAC 解码配置指令,受。台的标准 IPC 发送前端 OSD 配置指令,受。受测平台支持通过 UDP/TCP。台的标准 IPC 发送录像计划配置获取指令,台的标准 IPC 发送报警录像配置获取指令,台的标准 IPC 发送画面翻转配置获取指令,台的标准 IPC 发送图像抓拍配置获取指令,台的标准 IPC 发送设备基本参数配置指令,台的标准 IPC 发送视频参数属性配置指令,
2024-02-17 16:45:22
1256
原创 qt5.15.2 配置 android
第一步,最好安装,因为他是与qt5.15.2这个能匹配上的右击电脑,选择属性,选择高级系统设置,选择环境变量。点击新建,变量名为JAVA_HOME,变量值为java安装的路径。我的如下图JAVA_HOMECLASSPATH%JAVA_HOME%\lib\tools.jar //变量值然后在path中将java 的bin目录及lib目录配置进去双击path 配置java路径和jre路径第二步下载androidsdk,点击这里,
2023-06-04 17:54:08
1134
原创 sip 协议中:from to 的理解
from是电话发起方,to是电话接收方,而不是说,from是消息发起方,to是消息接收方!所以不管是发出的消息还是接收到的消息,from和to的内容都是一样的
2021-11-26 13:53:32
3420
1
原创 GB28181协议RTP传输
在安防行业,有个协议是无论如何都要适配的,因为公安监控网络用的就是它,它就是:GB28181。而这份协议主要由海康制定,所以除了海康其他厂商想要适配都会少许有点儿麻烦。题主前东家便是海康,这里稍微分析下该协议几个容易搞混的细节,记录在此,方便以后自己查阅,也方便诸位。1. GB28181要求的RTP流格式 首先,我们来看看I帧的PS流格式,这里需要注意的是SPS、PPS之前要加上PES头部。如下图所示,其中绿色部分就是我们拿到的H.264裸流数据,须将它拆分成三段并在前面加上PES头部。
2021-07-22 09:13:15
1443
1
原创 osip 修改适用于28181和35114
1、复制osip_authorization.h 和osip_authorization.c2、修改文件名称函数为osip_securityinfo和osip_mtnote3、将四个文件中authorization替换成securityinfomtnote4、在osip_parse_cfg.c中添加osip_message_set_(securityinfomtnote) pconfig[i].hname = AUTHORIZATION; pconfig[i]....
2021-07-08 14:56:04
3162
7
原创 MSE 播放器
<!DOCTYPE html><html><head> <meta http-equiv="Cache-Control" content="no-cache" charset="utf-8" /> <title>WebSocket</title></head><body> <button onclick="play()">播放</button> ...
2021-05-22 14:20:08
719
原创 AAC打包时间计算以及估算平均帧大小
先简单记录下最近对AAC音频学习的打包时间计算以及估算平均帧大小。打包时间,其实是可以音频处理上通用的;而估算平均帧大小,是由于AAC单个帧的大小并非是固定的,因此估算的是一个平均帧大小。samples做音频,肯定要对samples有所了解,其中AAC有以下几种samples:PROFILE SAMPLES HE-AAC v1/v2 2048 AAC-LC 1...
2020-02-03 15:36:46
2589
原创 修改系统参数 提高tcp 效率
net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。net.core.optmem_max = 10000000#该参数指定了每个套接字所允许的最大缓冲区的大小net.core.rmem_default = 10000000#指定了接收套接字缓冲区大小的缺省值(...
2019-12-02 15:37:18
436
原创 Ubuntu18 root账号自动登陆
一、打开终端 输入指令, sudo passwd root1、输入当前用户密码2、设置root用户密码3、确认root用户密码 二、修改文件,命令cd /usr/share/lightdm/lightdm.conf.d/1、输入 ls 查看具体文件名称。如图所示,文件名为“50-ubuntu.conf”,2、编辑这个文件,命令为gedit + 文件名...
2019-09-12 15:25:03
1360
原创 万能Makefile
每次在Linux 下开发都要百度个makefile 最近遇到一个蛋疼的博友、执行make 的时候把我的工程全部删除气死我了、一周的辛苦白费了、为了避免类似的情况出现、so 决定自己写一个万能的Makefile、#-Wall 是打开警告开关# Wno-unused 变量定义未使用# Wno-format 含NUL字节的格式字符串#-O代表默认优化,可选:-O0不优化,-O1低级优...
2019-09-11 15:44:11
478
原创 VS编译PortAudio
由于要做一个音频采集程序,可以将桌面声音采集到远程播放,直接用DirectSound或Wasapi比较麻烦,所以用PortAudio这个封装好的库。1)首先到http://www.portaudio.com/download.html下载相应压缩包,解压到本地;2)用VS打开build\msvc目录下的portaudio.sln文件,由于我用的是VS2012,所以打开后会有Upgrade提示...
2019-06-17 16:52:58
1596
1
原创 视频丢包处理策略
视频会议中常用的丢包处理方法有: 前向纠错 和 丢包重传。FEC是前向冗余,举个例子,发送数据A和B,增加发送一个数据C等于A和B的异或。接收方接到这3个包的任意2个包,异或一下就可以得到第3个包。ARQ就是接收方发现丢包后,去发送方请求重传。FEC传递简单,只需要单向传输就可以支持,延时小,缺点就是丢包率波动大时,抗丢包能力差。ARQ的优点是网络携带率高,但延迟大,...
2019-06-17 16:24:10
2570
原创 Windows 下编译 FFMPEG + QSV 使用教程
经常有童鞋请教我在window如何编译64位ffmpeg + QSV的方法,这两天闲暇无事又重写编译了一遍,随便写成博客与大伙分享第一步配置环境 1.下载 mingw-w64 2.下载 msys 3.下载 mfx_dispatcher 4.如图所示,将的mingw-W64 和MSYS分别解压 ...
2018-11-30 11:12:47
7880
6
转载 MediaServerStudioEssentials2017R2 + ubuntu 16.04
安装依赖sudo apt-get install -y preload libpciaccess-dev libpthread-stubs0-devsudo apt-get install -y compizconfig-settings-managersudo apt-get install -y subversion git git-svn gcc g++ make cmak...
2018-08-17 11:16:48
761
3
原创 rtsp vod
OPTIONS rtsp://192.168.1.206/vod RTSP/1.0CSeq: 2User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)RTSP/1.0 200 OKServer: VLC/2.2.6Content-Length: 0Cseq: 2Public: DESCRIBE,S
2017-08-23 20:43:10
1804
原创 ffmpeg extradata aac
1: av_new_stream 的时候。写aac音频时,要添加两个字节的信息到AVCodecContext char dsi[2];make_dsi( (unsigned int)get_sr_index( (unsigned int)samples ), (unsigned int)channels, dsi );c->extradata = (uint8_t*)dsi;c
2017-08-15 11:11:59
3043
3
原创 avx 快速拷贝
;r8-r15寄存器,低32位r8d-r15d,低16位r8w-r15w,低8位r8b-r15b mov rax, rcx ;save dst addresscpystart256: cmp r8, 256 jnbe loop256
2017-08-03 16:31:35
3339
原创 C代码调用汇编&使用指令集优化
先写一个最简单的例子(在此针对的是64bit汇编),假设main函数里需要对两个数字求和,代码如下:1 int sum(int a, int b);//此函数通过汇编实现2 3 int main(int argc, char *argv[])4 {5 int num = sum(2, 3);6 return 0;7 } 那麽对应的汇编实现s
2017-07-20 16:07:32
1027
原创 第一章:CPU与寄存器
好的程序员,应该是懂汇编语言的程序员。汇编语言在程序调试中是不可回避的。分析汇编语言在某些时候是必须的,而有的程序就没有源代码和符号表,那么唯一可以利用的就是它的反汇编语言了。在一些底层开发中,还需要在代码中嵌入汇编语言。Linux内核也是通过C与汇编写出来的。因此,首先介绍一下汇编语言的基础。1.1寄存器CPU的一个重要组成部分就是它的寄存器。计算机体系结构中常用到的寄存器包括以下几类寄
2017-07-20 15:40:30
1324
原创 汇编语言程序设计
一、通用寄存器 寄存器作用64-bit registerLower 32 bitsLower 16 bitsLower 8 bits累加器raxeaxaxal基址寄存器rbxebxbxbl计数器rcx
2017-07-20 15:36:35
3733
原创 RTMP协议从入门到放弃
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。正好最近在从事这方面的工作,在此记录下自己对RTMP的
2017-06-13 16:07:32
504
原创 OpenSSL的编译
32/1. 编译openssl1.0.0e a) 下载并安装ActivePerl b) 下载并安装nasm(http://nasm.sourceforge.net/) c) 解压openssl压缩包 d) 运行cmd命令行,切到openssl目录,分别执行以下命令>perl Configure VC-WIN32 --prefix=c:\some\
2017-01-17 23:44:55
477
原创 hls之m3u8、ts流格式详解
HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。1、M3U8文件 用文本方式对媒体文件进行描述,由一系列标签组成。#EXTM3U#EXT-X-TARGETDURATION:5#EXTINF:5,./0.ts#EXTINF:5,./
2016-11-25 17:51:05
2401
转载 HLS协议详解
1. H5 到底能不能做视频直播?当然可以, H5 火了这么久,涵盖了各个方面的技术。对于视频录制,可以使用强大的 webRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,缺点是只在 PC 的 chrome 上支持较好,移动端支持不太理想。对于视频播放,可以使用 HLS(HTTP Live Streamin
2016-11-21 11:43:11
5777
1
原创 音频样本及采集时间间隔
正常人听觉的频率范围大约在20Hz~20kHz之间。采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位
2016-10-20 10:27:47
5748
1
原创 RTSP/RTP 媒体传输和控制协议
1 前言本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议.本协议主要基于标准的 IETE 的 RTSP/RTP 以及相关协议, 并针对具体应用定义了部分扩展.本协议只是当前实现的总结和整理, 具体的协议细节以实际实现为准2 定义RTSP实现流协议SDP会话
2016-09-21 16:23:16
6638
原创 yuv 图像里的stride和plane的解释
stride可以翻译为:跨距stride指在内存中每行像素所占的空间。如下图所示,为了实现内存对齐(或者其它的什么原因),每行像素在内存中所占的空间并不是图像的宽度。plane一般是以luma plane、chroma plane的形式出现,其实就是luma层和chroma层,就像RGB,要用三个plane来存。最近在做HI5321的一个项目,其中遇
2016-09-20 21:53:29
21112
4
原创 linux下编译安装ACE6
我用的系统是ubuntu12.04,选择的ACE版本是6.3.1。1.在官网http://download.dre.vanderbilt.edu/上下载最新版本的ACE+TAO+CIAO.tar.bz2。保存在/home/用户名/Software文件夹下。2.解压文件。之后会出现一个名字为ACE_wrappers的文件夹。这样所有ACE的源文
2016-08-29 16:14:39
2638
原创 RakNet
简介RakNet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。RakNet 致力于网络和网络相关服务的游戏引擎。不仅包含了网络通信,也包括游戏级别复制,补丁升级,NAT穿透,和语音聊天。RakNet可以用于任何的应用,且 可以与其他任何使用了RakNet的系统通信,不论它们位于同一个计算机,跨L
2016-04-06 17:37:37
8212
原创 Firebreath生成的Windows插件窗口对象与JS交互对象
对于Windows平台框架,Firebreath生成两个主要对象:1.FB::PluginCore派生对象,主要与浏览器交互2.FB::JSAPIAuto派生对象,主要与JS交互对于FB::PluginCore派生对象,可以通过下面方法得到插件窗口句柄:[cpp] view plain copy FB:
2016-04-06 11:11:07
1239
转载 Firebreath1——Firebreath介绍和环境的搭建
What——firebreath是什么?Firebreath是一个能方便创建浏览器插件框架。Firebreath构建的插件的工作原理是NPAPI和ActiveX(仅Windows平台)。Why——为什么要用firebreath?1.Firebreath具有跨平台、支持多浏览器的特性,是一个优秀的跨平台跨浏览器的解决方案; 支持windows、Linux、mac等平台,
2016-04-06 10:03:45
940
转载 ddraw 视频下画图
我们如果是在在RGB视频上画图(直线,矩形等),一般采用双缓冲区继续,使用内存MemoryDC,来实现画的图形在视频上显示不闪烁的功能,但是我们知道用RGB显示视频都是使用GDI进行渲染,这样很耗CPU,那么我们能不能在YUV上进行视频渲染呢,答案是肯定的,使用ddraw直接显示yuv就ok了,可以支持yuv422和yuv420的直接使用显卡显示,不耗CPU,但是我们在使用ddraw显示时,然后在
2016-04-01 10:11:44
1917
5
原创 libevent 在window环境编译
系统:win7编译器:vc20101,下载最新的libevent,目前是libevent-2.0.14-stable.tar.gz。2, 解压到目录libevent-2.0.14-stable3,修改“D:\libevent-2.0.10-stable\event_iocp.c”、“D:\libevent-2.0.10- stable\evthread_win32.c”、“D:
2016-03-07 14:30:43
797
原创 ACE 编译
1. 设置环境变量在操作系统添加一个名为ACE_ROOT的用户环境变量,值为刚才ace的解压路径D:\Develop\ACE_wrappers。添加用户的Path环境变量,值为%ACE_ROOT%\lib,这样才能保证系统能找到ace生成的动态连接库。设置VS2005的C++开发项目信息,依次打开菜单 工具-选项-项目和解决方案-VC++目录 ,在右侧目录列表中选择"包含目录",添
2015-12-15 16:06:58
1589
原创 ACE 智能指针
ACE库提供的智能指针的功能是相当强大的。主要有ACE_Auto_PtrACE_Refcounted_Auto_PtrACE_Intrusive_Auto_Ptr三个智能指针,其中用的比较多的却容易使用的是前面2个。最后一个需要在自己的类中实现一些规定的函数。在这里主要介绍前面2个指针的使用。 ACE_Auto_Ptr ACE_Aut
2015-11-20 13:41:10
619
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人