- 博客(262)
- 资源 (55)
- 收藏
- 关注
原创 拉取rtsp并推rtmp(监控转直播实现思路及方法)
本文为博主原创文章,未经博主允许不得转载。(合作洽谈请联系QQ:1010316426)思路基本思路分为两个步骤,第一个步骤是拉取rtsp码流,分离出视频帧和音频帧;第二个步骤是将这两种数据帧按照rtmp的码流封装格式进行打包,按照rtmp的推流流程进行推送到服务器。这样就完成了整个拉推的流程。上一篇博客《基于live555制作RtspClientDLL库》讲解了上面流程的第一个步骤的主要部分,调用封装好的RtspClientDLL库就可以轻松得到分离后视频帧和音频帧。本篇讲讲步骤二。步骤二也分两.
2020-09-02 10:47:28 1972
原创 基于live555制作RtspClientDLL库
基于live555制作RtspClientDLL库支持能力代码思路制作C++包装类包装调度器和RTSPClient包装媒体资源A/V流数据处理事件调度及触发请求失败码流中断模拟心跳软件实现支持能力1.基于live555的基础组件能力,将其包装成C++类或C的API并导出成DLL库,可供其他库使用。2.导出的C-API要求能定制端口和传输协议,并能在内部交互发生异常/出错时告知调用方代码。3.视频支持H264/H265,音频支持G711A/G711U/AAC等但不限于此。4.支持安防行业主流的海康/
2020-08-08 21:42:46 839
原创 如何从std :: ostream派生实现自定义的输出流类
本文为博主原创文章,未经博主允许不得转载。(合作洽谈请联系QQ:1010316426)缘起:笔者的项目产品上一般使用C风格的库记录运行日志,日志库的接口是如printf样式。近日,需要引入其他模块(不同途径获取)的代码,但是发现这个模块记录日志是使用C++的流式风格。因代码里巨大,手动修改费时费力(不符合程序员做事风格),于是笔者想到是否可以将流式的log只通过替换其日志宏 从而实现在不修改代码的前提下将流式转为printf式,从而完成log部分的整合。//printf风格void write_.
2020-07-14 16:43:00 3326
原创 新一代H.266 VVC视频编码标准正式发布
新一代H.266 VCC视频编码标准正式发布德国弗劳恩霍夫通讯技术研究所(Fraunhofer HHI)正式宣布了新一代运动图像专家组MPEG)视频标准——它就是简称 H.266 的通用视频编码(VVC)。过去三年,包括苹果、爱立信、英特尔、华为、微软、高通、索尼等在内的行业合作伙伴,一直在努力推动这项新技术的发展。与简称 H.265 的高效视频编码(HEVC)前身一样,新标准有望将视频文件的比特率和大小降低 50% 左右,同时不会在视觉保真度上有明显的差异。支持 VVC 编解码功能的终端软件,亦有
2020-07-13 08:45:02 1540
原创 调用宇视摄像机SDK获取IPC的音视频码流
通过调取宇视摄像机SDK,获取的音视频码流,其格式为标准的h264 over rtp或h265 over rtp。需通过解析rtp从而提取出纯H264/H265及音频帧数据。获得的数据均是裸的视频帧或音频帧。第1步:调用sdk获取实况码流 NETDEV_PREVIEWINFO_S stNetInfo; memset(&stNetInfo, 0, sizeof stNetInfo); stNetInfo.dwChannelID = m_nChannel; stNetInfo.hPlayWnd
2020-07-10 10:56:06 3044 1
原创 调取大华SDK获取IPC音视频流并得到H264帧
通过调取大华摄像机SDK,获取的音视频码流,其格式为大华的私有格式。需通过大华的码流分析库StreamAnalyzer.dll将私有头和负载分离,从而提取出纯H264及音频帧数据。第1步:调用sdk获取实况码流LLONG lRet = CLIENT_RealPlayEx(m_LoginID,iChannel,0);if(0 != lRet){ m_DispHanle[iDispNum-1]=lRet; SetPlayVideoInfo(iDispNum,iChannel,ServerMode);
2020-07-06 17:34:32 6995 8
原创 调取海康摄像机SDK获取的音视频码流的格式
通过调取海康摄像机SDK,获取的音视频码流,其格式并不是直觉上的H264/H265的NALU,而是PS流。如果想得到H264或者H265的裸流、以及音频帧,需要自行解复用PS。获取的码流打印如下图所示:从图中可以分析出:(1)左侧显示,当摄像机上“视频类型”设置为复合流时,回调得到的数据就包括视频E0和音频C0。(2)右侧显示,当摄像机上“视频类型”设置为视频流时,回调得到的数据就仅仅只包括视频E0。调取SDK取流的代码如下:NET_DVR_CLIENTINFO ClientInfo;Cli
2020-07-03 15:14:24 5632
原创 windows下DLL库里如何获取动态库文件名称
假如我们有一个DLL库为C://xyz//abc.dll现在想在abc.dll库内部获取这个文件的名称。该dll库被一个叫做myapp.exe的程序调用。一般会想到通过GetModuleFileName来获取库名称,但是其第一个参数HMODULE hModule无法知道。如果给hModule赋值为NULL,那么只能得到调用该DLL的myapp.exe的文件名称。所以不能直接使用这个API。windows给我们提供了另一个API可以获取到这个DLL库的hModule,即 GetModuleHandleE
2020-07-03 13:27:41 1235
原创 H.265的各种帧(详解):接入图像
本文为博主原创文章,未经博主允许不得转载。(合作洽谈请联系QQ:1010316426)前一篇博客H.265的各种帧对当前版本H265的所有的帧类型进行了罗列和简单说明。本篇对其中的较为关键的VCL NAL进行详细解说。博客主体是笔者购买的一本书上的内容。笔者在阅读过程中写了一些旁白笔记,里面也有很多不明白的地方,留待以后逐渐深入学习相关知识加以解惑。HEVC的接入图像HEVC的接入图像帧内随机接入图像IRAP:IDR/CRA/BLA前置图像Leading:RADL/RASL后置图像Trail:TSA.
2020-07-01 16:57:56 3061 4
原创 H.265的各种帧
H.265的各种帧各种 NALU-Type关于TRAIL关于TSA和STSA关于BLA关于IDR关于CRA和GOP关于IRAPVPSSPSPPSAUDEOSEOBFDSEI各种 NALU-Type下图是ffmpeg-v4.2中定义的所有H.265的NALU枚举,参考的《T-REC-H.265-201802》标准。关于TRAILTrailing pictures包括TSA、STSA和TRAIL。在Trailing pictures中,除了TSA和STSA之外,其他的都定义为TRAIL帧。关于TS
2020-06-22 08:51:52 4074 1
原创 H265 HEVC 协议文档第4章缩写词及其含义翻译
创建一个表格缩写含义BBi-predictive:双向预测,即B帧或B条带,B条带中的CU可以采用帧内或帧间预测编码,每个预测块采用双向预测方式进行预测,B条带编码时同时使用参考图像列表0和参考图像列表1。BLABroken Link Access:断点连接接入,主要用于实现对不同视频码流的拼接。只要简单地把后续码流中的一个IRAP(帧内随机接入点)图像的NAL单元类型改变为BLA标记值,串接到前面码流中IRAP帧的位置形成一个新的码流,就可以完成码流拼接的工作。BPB
2020-06-20 19:21:31 688
原创 H265的国标PS流打包
先来看看海康、大华、宇视三个安防厂家摄像机的H265 国标PS封装格式案例:首先是海康:接下来看大华:再接下来看看宇视的:可以看到,三个厂家稍稍有一点区别,海康是将VSP/SPS/PPS/SEI/IDR分开单独打包成一个PES包,宇视和大华则是将它们放到一个PES包里。其实两种方式都是符合ps打包规范的。其实H265的ps打包与H264的PS打包方式一致,区别仅在于PSM中stream_type的不同:H264是0x1B,H265是0x24。另外就是H265...
2020-06-19 09:38:34 4107
原创 扩展ps流增加“视频帧录像时刻绝对时间戳”方法
缘起:使用GB28181对接下级平台/NVR等时,做录像回放想将录像流的时间轴精确到秒,就是实现类似下面的效果:然而ps流中PES包携带的PTS/DTS无法转换成【2020-06-1600:16:43】 这样的绝对时间,因此就无法通过国标PS流进行精准定位。因此,作为上级国标平台欲想实现上图的效果,要么使用存储设备私有SDK来请流,要么就要扩展PS流增加时间戳。我们采用了以扩展PS为首选、调用SDK为辅助的思路。实现:实现扩展PS流,增加私有数据或自定义数据,标准的办法包括两种:其一是...
2020-06-16 08:47:35 1916
原创 基于svn+VisualStudio的自动化生成软件版本工具
在开发、发布过程中,经常遇到库版本不对、或者不是最新的版本,而引起的软件行为不符合预期的情况。手改版本号能解决这个问题,但在主副版本号短期内不变、内部小范围测试或发布又很频繁的情况下,手动修改就有些麻烦。为此,笔者特意制作了一个自动化更新版本号的工具来解决这个困扰。思路也简单,利用svn每次提交代码其版本号都会改变的特点,将svn提交号作为软件版本号的一部分,并通过svn命令行自动获取当前...
2019-02-15 17:09:00 571
原创 进程已不存在,但端口仍被占用,TcpView显示进程名为[non-existent]
原文地址:https://www.cnblogs.com/zhcncn/archive/2013/02/04/2891489.html
2018-11-27 20:43:13 2526
原创 C/C++ 的宏中#和##的作用和展开
C/C++ 的宏中,#的功能是将其后面的宏参数进行字符串化操作,简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。##连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。凡是宏定义里有用#或##的地方宏参数是不会再展开,例如_STRI(INT_MAX)中的INT_MAX就不会被展开为214748364...
2018-08-08 10:53:14 8326
原创 用C++实现简单的反射机制
备忘记录下来。代码是从https://blog.csdn.net/scythe666/article/details/51718864抠出来的。引用的另外一篇博客的地址:https://blog.csdn.net/cen616899547/article/details/9317323。但是这篇博客不是最原始地址,原始地址在博客里有描述 “ Published on 2012 年 2 月 ...
2018-08-07 14:21:21 1399
原创 从C++函数返回多个值
今天在回顾std::initializer_list时候,想到C++中一个函数返回多个值的方法都有哪些?搜索到了这么一篇译文,写的还是挺全面的。《从C++函数返回多个值》它的原文地址在这里:《Returning multiple values from functions in C++》作为深度阅读可以看看。文章不长,但覆盖全面。文章内的主要技术点包括:(1)Multipl...
2018-08-06 18:04:26 3455
原创 非模板类里面的模板构造函数
今天在阅读一本C++书上的例子,示例代码无法编译过。它里面有这么一个东西,一个类A,类A本身不是定义的模板类,但是它的构造函数却是用的template声明的模板函数(模板构造函数),之前工作直接接触模板比较少,对于这种语法也是第一次这么明确地看到,记录下来备忘。 #include <iostream>using namespace std;class A{publ...
2018-08-06 14:10:00 3019
原创 RTSP 2.0
2016年12月,RTSP 2.0协议正式发布,rfc索引是7826,点此查看新标准还是有不少修改的,除了完善一些原协议的中的定义,主要修改就是对接口method进行了修改,比如删除了RECORD和ANNOUNCE方法,新增了PLAY_NOTIFY方法。删除了RECORD,这表示你不能再通过这个接口来控制服务器进行数据的录制了,可以选择在PLAY方法中,添加一些参数,来实现服务器对直播数据...
2018-07-24 15:59:08 1507
原创 安防行业浏览器上视频播放技术
从讨论组里截图的, 概要来讲: h5+h264,浏览器chrome/火狐,延迟1s以内 flv.js插件,解析rtmp转成mp4给浏览器 h5+mse,播放fMP4文件,rtsp取出H264再封装成fMP4再送入mse ckplayer可以播放rtmp的url chrome用PPAPI, 总体来讲,目前在各浏览器里做插件,基本有三种技术Ac...
2018-07-19 09:38:39 1065
原创 C++11观察者模式实现
近日阅读《深入应用C++11》一书,上面提到使用C++11实现一个观察者模式到举例。真巧,笔者近日参与一个基于GB28181协议的高速路视频监控平台项目,需要开发国标媒体服务软件,正想着需要使用观察者模式来实现媒体流到逐级传递。使用已有的技术也可以实现这样的功能,笔者之前一直使用的是回调函数的方法来将数据从一个模块转发给下一级模块(更多请阅读《模块通知的7种技术》,近期还要更新此文),实现简单,代...
2018-07-12 16:59:21 592
原创 关于C++1X中智能指针std::unique_ptr<T>的设置删除器使用示例
关于C++1X中智能指针std::unique_ptr<T>的设置删除器使用示例
2018-07-06 22:23:50 2802
原创 关于C++1X中智能指针std::shared_ptr<T>的使用示例
本实例演示了std::shared_ptr<T>的初始化的集中方法,使用上不能使用栈上对象初始化,删除器的使用,函数传参的使用,等使用方法
2018-07-06 16:55:03 1178
原创 Http1.0、1.1、websocket在长连接和交互方面的区别
网上内容很多了,有的也称为webSocket、Ajax轮询、长轮询(long poll),要解决的应用问题主要是如何在客户端上及时更新数据,如何让服务端能主动向客户端发出Request。至于说带宽占用、服务器cpu占用、socket句柄销毁等,都属于次带带出来的问题,而不是业务或功能上的需求问题。笔者画了一个图,比较简单,文字性的描述就不在这里多写了。注意看彩色的线和箭头指向。...
2018-07-06 11:49:54 1272
原创 平安城市,天网工程,雪亮工程这三者的区别
转载自http://www.asmag.com.cn/baike/arc-1691.html平安城市平安城市就是通过三防系统(技防系统、物防系统、人防系统)建设城市的平安和谐。它是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通管理、应急指挥等需求,而且还要兼顾灾难事故预警、安全生产监控等方面对图像监控的需求,同时还要考虑各系统之间的联动。天网工程天网工程是指为满足城市治安...
2018-06-28 09:50:35 5644 1
原创 HTTP的GET、POST的区别与GB28181协议
今天偶然间看到了一篇博客《99%的人都理解错了HTTP中GET与POST的区别》,原始出处不知在哪里,请大家自行百度/谷歌。对于其中作者指出的“GET产生一个TCP数据包;POST产生两个TCP数据包。”笔者甚是好奇。于是网络检索,找到了另一篇博客:《http://www.cnblogs.com/tekkaman/archive/2013/04/03/2997781.html》。里面丢了一个rfc...
2018-06-20 17:05:49 1191 2
原创 Wowza服务器系列(5):使用rtsp协议向wowza推流的wowoza配置方法
令见:Wowza服务器系列(4):使用rtmp协议向wowza推流的wowoza配置方法1 向wowza推rtsp流配置1.1 去掉rtsp密码验证1.2 创建.stream文件1.3 准备接收rtsp流使用stream files下流文件的状态变为wating stream状态1.4 向wowza推rtsp流无1.5 播放rtsp流可以使用rtsp,rtm...
2018-04-01 19:38:48 2334 3
原创 Chrome谷歌浏览器OTS parsing error: invalid version tag
笔者今日在给后台管理UI寻找新的库和框架,看到了AceAdmin,既美观又还能全面满足自己的需求。于是下载下来部署看看效果。笔者的web服务器是自己开发的,使用C++,基于libevent-http。浏览器支持Chrome(65.0.3325.146)和QQBrowser(9.7)两款。以上是开发运行环境介绍。在AceAdmin网站http://ace.jeka.by/上看到的图标啥的都显示正常,...
2018-03-11 18:55:50 19706 2
原创 谁能阻挡亚马逊吞下数字时代最后一块蛋糕?
原文链接 https://hbr.org/2018/02/can-anyone-stop-amazon-from-winning-the-industrial-internet译文地址:http://tech.163.com/18/0220/14/DB3JBU3F00097U7R_mobile.html网易科技讯 2月20日消息,《哈佛商业评论》(HBR)网站近日发布文章称,纯信息商品和数字化的模...
2018-02-20 16:22:32 774
原创 私人飞机已不稀奇…国内首颗私人卫星上天!耗费500万,未来可能开直播赚钱
私人飞机已不稀奇…国内首颗私人卫星上天!耗费500万,未来可能开直播赚钱
2018-02-04 15:09:41 668 1
原创 visual studio 2017社区版 离线安装包下载地址
visual studio 2017社区版 离线安装包下载地址http://download.csdn.net/download/aflyeaglenku/10216416
2018-01-21 11:46:24 3513
JTT 1076-2016 道路运输车辆卫星定位系统 车载视频终端技术要求.pdf.zip
2021-08-17
ISO-IEC 14496-3_2009.zip
2020-07-21
ISO/IEC 14882:2014 C++14 C++标准 英文版 PDF 非扫描版
2018-08-06
一个ps解复用H264和H264打包ps的动态库及demo
2017-12-21
POSIX多线程程序设计
2017-11-15
流媒体基本知识及流媒体服务器搭建知识大全
2017-08-22
FFMpeg_FFPlay 源码剖析(杨书良).pdf
2017-07-14
Java UDP打洞技术,UDP 穿透NAT,P2P打洞通信
2017-05-04
Java性能优化权威指南(下载链接)
2017-04-09
h264中文协议(中英文对照)H264解码手册.pdf
2016-11-29
新一代视频压缩编码标准-H.264_AVC(第二版).pdf
2016-11-29
新一代视频压缩编码标准-H.264(第一版).pdf
2016-11-29
360.ts,wowza推流测试视频。
2016-11-07
[SQLite权威指南(第二版)]英文版
2016-05-27
[SQLite权威指南(第二版)]中文版
2016-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人