c++
文章平均质量分 59
ww506772362
这个作者很懒,什么都没留下…
展开
-
GB28181协议RTP传输
在安防行业,有个协议是无论如何都要适配的,因为公安监控网络用的就是它,它就是:GB28181。而这份协议主要由海康制定,所以除了海康其他厂商想要适配都会少许有点儿麻烦。题主前东家便是海康,这里稍微分析下该协议几个容易搞混的细节,记录在此,方便以后自己查阅,也方便诸位。1. GB28181要求的RTP流格式 首先,我们来看看I帧的PS流格式,这里需要注意的是SPS、PPS之前要加上PES头部。如下图所示,其中绿色部分就是我们拿到的H.264裸流数据,须将它拆分成三段并在前面加上PES头部。原创 2021-07-22 09:13:15 · 1182 阅读 · 1 评论 -
AAC打包时间计算以及估算平均帧大小
先简单记录下最近对AAC音频学习的打包时间计算以及估算平均帧大小。打包时间,其实是可以音频处理上通用的;而估算平均帧大小,是由于AAC单个帧的大小并非是固定的,因此估算的是一个平均帧大小。samples做音频,肯定要对samples有所了解,其中AAC有以下几种samples:PROFILE SAMPLES HE-AAC v1/v2 2048 AAC-LC 1...原创 2020-02-03 15:36:46 · 2205 阅读 · 0 评论 -
修改系统参数 提高tcp 效率
net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。net.core.optmem_max = 10000000#该参数指定了每个套接字所允许的最大缓冲区的大小net.core.rmem_default = 10000000#指定了接收套接字缓冲区大小的缺省值(...原创 2019-12-02 15:37:18 · 325 阅读 · 0 评论 -
yuv 图像里的stride和plane的解释
stride可以翻译为:跨距stride指在内存中每行像素所占的空间。如下图所示,为了实现内存对齐(或者其它的什么原因),每行像素在内存中所占的空间并不是图像的宽度。plane一般是以luma plane、chroma plane的形式出现,其实就是luma层和chroma层,就像RGB,要用三个plane来存。最近在做HI5321的一个项目,其中遇原创 2016-09-20 21:53:29 · 20461 阅读 · 5 评论 -
Firebreath1——Firebreath介绍和环境的搭建
What——firebreath是什么?Firebreath是一个能方便创建浏览器插件框架。Firebreath构建的插件的工作原理是NPAPI和ActiveX(仅Windows平台)。Why——为什么要用firebreath?1.Firebreath具有跨平台、支持多浏览器的特性,是一个优秀的跨平台跨浏览器的解决方案; 支持windows、Linux、mac等平台,转载 2016-04-06 10:03:45 · 906 阅读 · 0 评论 -
boost window下安装
boost window下安装window:1、boost根目录运行 bootstrap.bat; 生成 bjam.exe2、打开vs命令行,切换到boost目录 window下安装" title="boost window下安装" style="font-size:12px; margin:0px; padding:0px; border:0px; list-原创 2015-10-27 11:50:22 · 520 阅读 · 0 评论 -
由动态库文件dll生成lib库文件
本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件。参考OpenBlas的说明“Howto generate import library for MingW”,和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,学习如何生成lib库,其中OpenBlas的说明讲的是如何使用Vi原创 2015-08-30 16:38:28 · 831 阅读 · 0 评论 -
Windows文件读写(提高读写速度)
HANDLE CreateFile(LPCTSTR lpFileName, //指向文件名的指针DWORD dwDesiredAccess, //访问模式(写/读)DWORD dwShareMode, //共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针DWORD dwCreationDisposition,原创 2015-07-29 12:57:19 · 6595 阅读 · 0 评论 -
opencl buffer
1. 创建buffer涉及到内存与显存的操作总是复杂麻烦的,这个函数也一样。。。cl_memclCreateBuffer (cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret原创 2015-07-06 09:54:35 · 2003 阅读 · 0 评论 -
无法打开包括文件:"dxtrans.h": No such file or directory
fatal error C1083: 无法打开包括文件:"dxtrans.h": No such file or directoryhttp://blog.waterlin.org/articles/qedit-problem-in-windows-directshow.html在使用有关 DirectShow 东西的时候,使用了头文件#include 结果,编译的时原创 2015-05-10 10:48:18 · 12165 阅读 · 0 评论 -
mingw编译ffmpeg+x265过程记录
工作环境 OS:windows 71.相关资源下载Ffmpeg-2.3 http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2X265-1.3下载 https://bitbucket.org/multicoreware/x265/wiki/Homehttp://ffmpeg.zeranoe.com/b原创 2015-04-15 14:16:48 · 713 阅读 · 0 评论 -
面向基于英特尔® 架构的平台的实时端到端 H.265/HEVC 解决方案
目录1. 摘要2. 简介 2.1 视频编解码器和 H.265/HEVC 2.2 HEVC 性能问题 2.3 当前 H.265/HEVC 解决方案调查3. 基于 IA 的平台上的优化实时解决方案 3.1 基于英特尔® 至强™ 处理器的实时 HEVC 编码器解决方案 3.1.1 针对 HEVC 编码函数调优的英特尔 SIMD 矢量化 3.1.原创 2015-04-15 12:32:37 · 4806 阅读 · 0 评论 -
Intel Media SDK 介绍
随着计算机硬件技术和软件技术的发展,数字媒体技术发展迅速,但是数字视频等为代表的关键技术的开发和应用有着较大的难度。如在软件开发方面,数字视频的编解码工作就是一件非常耗时、繁琐的工作。一方面,数字视频编解码本身的算法具有复杂性,而且行业内的数字视频编解码的标准也有很多;另一方面,针对不同的硬件平台的特点和优势,往往在实现上也会有所不同。因此,这种复杂性可能会迫使很多软件开发团队将精力花在这些细节上原创 2015-04-01 21:22:07 · 9095 阅读 · 0 评论 -
Windows桌面共享中一些常见的抓屏技术
1. BitBlt我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能。对于通过这种方式的抓屏, 有2点需要特别提醒:a. 在XP下我们可以通过最后的拷贝标志来控制是否拷贝layered window, 只有SRCCPY表示拷贝内容不包含layered window, 如果是原创 2015-03-30 09:56:21 · 2181 阅读 · 2 评论 -
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 · 1209 阅读 · 0 评论 -
RakNet
简介RakNet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。RakNet 致力于网络和网络相关服务的游戏引擎。不仅包含了网络通信,也包括游戏级别复制,补丁升级,NAT穿透,和语音聊天。RakNet可以用于任何的应用,且 可以与其他任何使用了RakNet的系统通信,不论它们位于同一个计算机,跨L原创 2016-04-06 17:37:37 · 7736 阅读 · 0 评论 -
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 · 1289 阅读 · 1 评论 -
视频丢包处理策略
视频会议中常用的丢包处理方法有: 前向纠错 和 丢包重传。FEC是前向冗余,举个例子,发送数据A和B,增加发送一个数据C等于A和B的异或。接收方接到这3个包的任意2个包,异或一下就可以得到第3个包。ARQ就是接收方发现丢包后,去发送方请求重传。FEC传递简单,只需要单向传输就可以支持,延时小,缺点就是丢包率波动大时,抗丢包能力差。ARQ的优点是网络携带率高,但延迟大,...原创 2019-06-17 16:24:10 · 2326 阅读 · 0 评论 -
RTMP协议从入门到放弃
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。正好最近在从事这方面的工作,在此记录下自己对RTMP的原创 2017-06-13 16:07:32 · 471 阅读 · 0 评论 -
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 · 423 阅读 · 0 评论 -
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 · 2262 阅读 · 0 评论 -
HLS协议详解
1. H5 到底能不能做视频直播?当然可以, H5 火了这么久,涵盖了各个方面的技术。对于视频录制,可以使用强大的 webRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,缺点是只在 PC 的 chrome 上支持较好,移动端支持不太理想。对于视频播放,可以使用 HLS(HTTP Live Streamin转载 2016-11-21 11:43:11 · 5399 阅读 · 1 评论 -
音频样本及采集时间间隔
正常人听觉的频率范围大约在20Hz~20kHz之间。采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位原创 2016-10-20 10:27:47 · 5205 阅读 · 1 评论 -
RTSP/RTP 媒体传输和控制协议
1 前言本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议.本协议主要基于标准的 IETE 的 RTSP/RTP 以及相关协议, 并针对具体应用定义了部分扩展.本协议只是当前实现的总结和整理, 具体的协议细节以实际实现为准2 定义RTSP实现流协议SDP会话原创 2016-09-21 16:23:16 · 6479 阅读 · 0 评论 -
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 · 2569 阅读 · 0 评论 -
linux 环境变量设置
1 安装完Qt 后2 执行gedit/vim ~/.profile3 然后在文件文件最后面添加Qt 的安装路径export QTDIR=/opt/Qt5.4.0/5.4/gcc_64export LD_LIBRARY_PATH=$QTDIR/libexport PATH=$PATH:$QTDIR/bin4 source ~/.profile5 qmak原创 2015-01-05 16:27:30 · 520 阅读 · 0 评论 -
/autogen.sh: 4: autoreconf: not found
./autogen.sh: 4: autoreconf: not found是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是因为没有安装automake 工具, (ubuntu 10.04)用下面的命令安装好就可以了。sudo apt-get install autoconf automake libtool原创 2014-12-30 14:02:39 · 4551 阅读 · 0 评论 -
Real-time End-to-End H.265/HEVC Solution for Intel® Architecture-based Platforms
Contents1. Abstract2. Introduction 2.1 Video Codec and H.265/HEVC 2.2 HEVC Performance Issues 2.3 The Current Solution of H.265/HEVC Investigation3. Optimized Real-time Solu原创 2014-11-04 10:34:04 · 2327 阅读 · 0 评论 -
ffmpeg 音视频合成分割
http://blog.csdn.net/jixiuffff/article/details/5709976当然先安装了 gentoo 下一条命令搞定emerge ffmpeg 格式转换 (将file.avi 转换成output.flv) ffmpeg -i file.avi output.flv -i 表示输入文件原创 2014-10-21 17:53:14 · 2423 阅读 · 0 评论 -
H264Tyuv
/* * toyuv.h * Save video frames to yuv * Author: elesos.com */ #ifndef TOYUV_H_#define TOYUV_H_ #include #include #include #include /** * Save video frames to yuv. * * @param szI原创 2014-11-01 14:11:44 · 1065 阅读 · 0 评论 -
x265API
x265_build_info_strx265_cleanupx265_encoder_closex265_encoder_encodex265_encoder_get_statsx265_encoder_headersx265_encoder_logx265_encoder_open_15x265_max_bit_depthx265_param_alloc原创 2014-11-01 14:41:06 · 1191 阅读 · 0 评论 -
x265
#include#include#include#include#pragma comment(lib,"libx265.lib")int main(){FILE*f_src=NULL;FILE*f_des=NULL;const char*filename_src="akiyo.yuv";const char*filename_des="akiyo.265"; int widt原创 2014-11-01 13:53:43 · 1348 阅读 · 0 评论 -
HEVC中的图像的分块分割方法
1、条带与区块在HEVC的视频编解码过程中,一帧图像会被分割成条带(slice),条带片段(slice segment)和区块(tiles)进行处理。条带和区块都是可采取的独立分割形式之一。而条带则是由条带片段组成的元素,包括独立条带元素和依赖性条带元素两类。上图即为一帧图像分割成条带的示意图。在该图中,该帧图像被分割成两个条带,其中第一个条带包含一个独立条带片段(原创 2014-11-04 11:04:43 · 1633 阅读 · 0 评论 -
C++ 资源大全
关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX l原创 2014-10-25 11:36:13 · 796 阅读 · 0 评论 -
tsockopt :SO_LINGER 选项设置 .
setsockopt设置 SO_LINGER 选项 此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger { int l_onoff; /* 0 = off, noze原创 2014-09-11 10:24:53 · 576 阅读 · 0 评论 -
SDL2.0在mfc窗口中显示yuv的一种方法
SDL显示问题 Ubuntu下进行OpenGL编程SDL2.0在mfc窗口中显示yuv的一种方法 2012-07-10 14:08:57| 分类:SDL | 标签:|举报|字号大中小 订阅DWORD ThreadFun(){ //用mfc窗口句柄创建一个sdl window SDL转载 2014-09-09 16:37:02 · 775 阅读 · 0 评论 -
opencv获取rtsp 解码播放
int main(int argc, char **argv){ IplImage *pFrame = NULL, *srcImage=NULL; CvCapture *pCapture = NULL; //pCapture = cvCaptureFromFile("rtsp://admin:[email protected]:554/h264/ch1/main/av_stre原创 2014-09-05 13:56:39 · 15271 阅读 · 4 评论 -
FFMPEG中最关键的结构体之间的关系 .
FFMPEG中结构体很多。最关键的结构体可以分成以下几类:解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLContext结构。(注意:FFMPEG中文件也被当作一种协议“file")解封原创 2014-03-13 23:50:12 · 640 阅读 · 0 评论 -
玩转FFmpeg的7个小技巧
FFmpeg堪称音频和视频应用程序的瑞士军刀,提供了丰富的选项和灵活性.很多时候用户为了看视频和听音乐都安装了ffmeg.更多关于ffmeg的详细介绍:here,可以通过ffmpeg -formats查看FFmpeg支持的视音频格式,左侧若是E表明可以编码,D表明可以解码本文着重介绍命令行下ffmeg的7个技巧:1 音频转换ffmpeg -i my_audio.wav原创 2014-10-09 16:25:20 · 1169 阅读 · 0 评论 -
HEVC解码中的SPS解析
一段HEVC码流可能包含一个或者多个编码视频序列CVS,每个CVS由一个随机接入点开始,即IDR/BLA/CRA。在H.264和HEVC中,序列参数集SPS包含该CVS中所有slice需要的信息。SPS的内容大致可以分为几个部分:1、自引ID;2、解码相关信息,如档次级别、分辨率、子层数等;3、某档次中的功能开关标识及该功能的参数;4、对结构和变换系数编码灵活性的限制信息;5、时域可分级信息;6、原创 2014-11-04 11:06:14 · 2237 阅读 · 0 评论