自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

楷尘·极客

小时候天真的以为全世界都喜欢我,长大了才知道,原来是全宇宙!

原创 音视频应用开发系列文章目录

前言 本文记录了本人在音视频学习和应用开发之路遇到的知识点和实际应用中遇到的坑所做的一些总结。因为音视频这方面的知识太多太多,就算今天记住了,过段时间又会遗忘一些细节,在此做记录总结供大家和自己日后做参考。持续更新ing··· 环境搭建篇 《初识ffmpeg》 《windows部署ngin...

2019-11-29 23:33:44 672 0

原创 判断音频是否有海思头

海思SOC AENC模块音频编码出来的数据是带海思头的,使用常规的解码器是无法直接解码的,而是要去掉海思头后才是原始的音频数据,那么如何判断音频包中是否有海思头呢! 海思音频数据分布 [hisi header][audio data][hisi header][audio data]···[h...

2020-05-13 13:29:13 57 0

原创 Windows下CMake libuv

简单对比下几个常用的几个异步事件库 libuv支持在Windows下支持IOCP,Linux下支持epoll,BSD系支持kqueue libev在Linux下支持epoll,BSD系支持kqueue,但在Windows只能select libevent支持在Windows下支持IOCP(但...

2020-04-30 17:01:14 68 0

原创 nginx源码开发-在nginx.conf中添加自定义配置

《音视频应用开发系列文章目录》 nginx的配置内容都在nginx.conf中,nginx已经预定义了许多的配置选项,比如worker_processes,error_log,user等等···,那么如何在nginx添加自定义的配置呢! 添加自定义配置 比如现在要在nginx.conf下添加...

2020-04-29 13:02:02 86 0

原创 nginx源码分析-ngx_get_options函数及如何添加自定义option

《音视频应用开发系列文章目录》 ngx_get_options函数分析 static ngx_int_t ngx_get_options(int argc, char *const *argv) { u_char *p; ngx_int_t i; //...

2020-04-21 16:47:07 90 0

原创 nginx源码分析-main函数

nginx的main函数位于nginx源码目录下的src/core/nginx.c文件中 int ngx_cdecl main(int argc, char *const *argv) { ngx_buf_t *b; ngx_log_t *log; ...

2020-04-21 16:08:14 96 0

原创 nginx源码开发-添加三方库

生成Makefile 按照此文章生成nginx源码的Makefile nginx添加三方库(以三方库rabbitmq-c为例) 1.使用和编译nginx一样的编译器编译三方库rabbitmq-c 2.打开并修改nginx的Makefile 在ALL_INCS下面添加三方库的包含目录 ...

2020-04-20 15:28:45 81 0

原创 Windows下CMake rabbitmq-c

编译openssl (如果不需要openssl,也可以跳过此步骤) https://blog.csdn.net/liang19890820/article/details/51658574 // 此大佬已经写的非常清楚完美无可挑剔 以下总结该大佬快速编译 需要软件:ActivePerl,Na...

2020-04-17 09:38:59 66 0

原创 SeetafaceV6人脸定位/识别/年龄预测/性别预测/口罩有无/眼睛睁闭

功能 人脸定位,人脸识别,年龄预测,性别预测集一体demo,活体检测效果不佳(可能是我摄像头太渣的原因),没加上。 环境 Windows10,vs2015/2017,seetaface6,opencv411 代码 #include <iostream> #include &...

2020-04-07 17:42:38 769 0

原创 Windows下nginx-http-flv-module服务部署

《音视频应用开发系列文章目录》 1.新建文件夹nginx-rtmp 2.将《Windows下nginx-http-flv-module编译》生成的nginx.exe拷贝到nginx-rtmp目录下 3.将nginx源码目录下的conf文件夹拷贝到nginx-rtmp目录下 4.将nginx...

2020-03-25 16:45:03 825 2

原创 Windows下nginx-http-flv-module编译

准备 nginx源码 工具集 1.mingw 2.perl,安装时添加到环境变量 3.nasm,安装完将nasm.exe所在的目录添加到环境变量 4.sed,安装完将sed.exe所在的目录添加到环境变量 三方库 1.rtmp插件,nginx-rtmp-module或者nginx-...

2020-03-25 15:26:45 736 8

原创 Windows下RabbitMQ服务器部署及测试

系统环境 win7/win10 x64 下载安装erlang erlang官网下载不是一般的慢,这边提供快捷通道 安装完添加环境变量:E:\install\rabbitmq\erlang\erl9.3\bin(换成实际路径/bin) 测试win+r->cmd输入:erl,出现下图说...

2020-03-23 17:18:30 71 0

原创 JT/T1078-车辆终端模拟器

《音视频应用开发系列文章目录》 1.支持任意音视频(本地,摄像头,IPC)以JT1078协议打包发送 2.音频支持G711A/G711U/G726/AAC 3.视频支持H264/H265 4.支持OSD编辑 5.支持人脸检测 合作方式:CSDN私信 ...

2020-03-15 21:43:42 287 0

原创 JT/T1078-音视频转发服务器

1.支持JT1078协议音视频转RTMP推流nginx 2.支持实时流,回放流,对讲高并发转发服务 3.音频支持G711A/G711U/G726/AAC 4.视频支持H264 5.支持实时可视化终端连接状态及数据 6.支持实时可视化线程池 7.支持Windows/Linux部署 ....

2020-03-15 21:36:29 709 0

原创 Qt之http实现get/post的两种方法

法一:异步 异步就是使用信号槽的方法实现get/post的异步方法,这样的方式不会产生阻塞,在获取到reply之前可以do other things。 get void get(const QString &str_url){ const QUrl url = QUrl::fr...

2020-03-15 21:16:42 605 0

原创 JT/T1078-RTP音视频封包

JT1078-RTP包结构 JT1078-RTP音视频包定义 #pragma pack(push) #pragma pack (1) typedef struct Jt1078AudioRtpPacket_T { unsigned char head[4]; #if IS_JT...

2020-02-28 10:41:54 546 0

原创 搭建RTSP服务器

《音视频应用开发系列文章目录》 网上现在公网的RTSP服务地址都已经失效,无法使用,可以自己搭建RTSP服务器用于测试,这边介绍使用VLC搭建RTSP服务器。 安装打开VLC RTSP媒体源选择 从本地媒体文件(本地媒体文件mp4/avi等) 从网络流(RTSP/RTMP/U...

2020-01-15 15:03:43 553 0

原创 Qt:The bound address is already in use解决及QTcpServer如何停止监听

The bound address is already in use解决 Qt tcp服务器重复监听同个端口时会出错:The bound address is already in use // maybe occur error:The bound address is already ...

2020-01-04 16:38:02 454 0

原创 FFmpeg推流器

《音视频应用开发系列文章目录》 推流器设计思路 生产者-消费者模式。一个线程负责拉取原始音视频流然后存储在队列,一个线程负责从音视频流队列获取流然后推送,视频帧需要按照实际的帧率间隔发送,否则服务器可能会受不了 设计AvPusher类 AvPusher.h #ifndef _AV_...

2019-12-26 14:56:54 226 0

原创 FFmpeg拉流器

《音视频应用开发系列文章目录》 拉流器设计思路 生产者-消费者模式。一个线程负责拉取原始音视频流然后存储在队列,音频消费线程从音频队列获取原始流进行解码等其他消费,视频消费线程从视频队列获取原始流进行解码等其他消费。 设计AvPuller类 AvPuller.h #ifndef _...

2019-12-26 14:36:41 304 1

原创 FFmpeg视频解码硬件加速

《音视频应用开发系列文章目录》 ffmpeg支持的硬件解码器 enum AVHWDeviceType { AV_HWDEVICE_TYPE_NONE, AV_HWDEVICE_TYPE_VDPAU, AV_HWDEVICE_TYPE_CUDA, AV_HWDE...

2019-12-26 14:13:03 464 0

原创 windows下编译librtmp

《音视频应用开发系列文章目录》 librtmp依赖zlib和openssl,所以在编译librtmp前需要编译这两个家伙 编译zlib 下载zlib并解压 进入zlib根目录下的E:contrib/vstudio/vc14目录,VS1015之后的就进入从vc14,之前的进入对应目录即可 ...

2019-12-25 17:11:23 99 0

原创 cv::Mat编码H264

《音视频应用开发系列文章目录》 本文基于ffmpeg and opencv封装H264编码器类AvH264,编码opencv的Mat数据类型图像为ffmpeg的AVPacket数据类型的H264数据。 编码流程 打开编码器 // 初始化一些H264编码器的参数 编码 关闭编码器 编码器...

2019-12-03 13:00:26 346 1

原创 大小端

《音视频应用开发系列文章目录》 大小端互换 void endian_swap(void *data, int size) { // size must 2 4 8 unsigned char *swdata = (unsigned char *)data; for (int i = ...

2019-12-02 21:27:14 52 0

原创 AVFrame和cv::Mat互转

《音视频应用开发系列文章目录》 ffmpeg视频解码后得到图像经常需要一些图像处理,opencv是图像处理的神器。所以就需要两者之间互相转化,ffmpeg解码后的数据类型是AVFrame,而opencv的图像数据结构是Mat,这就需要做个转化,本文实现了avframe->mat,mat-&...

2019-12-02 21:01:11 468 0

原创 音频编解码之AAC

《音视频应用开发系列文章目录》 本文基于fdk-aac封装AAC编码器类AvAac。aac编解码库有faac和fdk-aac,经百度,fdk-aac比较强大,所以基于fdk-aac,首先需要编译fdk-aac,Linux下easy,Windows下可以参考《windows下CMake fdk-a...

2019-12-02 20:40:03 192 0

原创 音频编解码之G711

《音视频应用开发系列文章目录》 G711规定了如何将128kbps的raw pcm信号转为64kbps的g711u/g711a音频信号。本文在前人的基础上封装了G711的编解码算法,有两种实现(基于算法和基于查表),查表的速度更快(源码下载)。 #ifndef _G711_H_ #defin...

2019-12-02 19:03:46 321 0

原创 windows下CMake fdk-aac

《音视频应用开发系列文章目录》 前言 在Linux下fdk-aac有编译脚本,可以轻松的编译之。但是在Windows下木有,这边创建fdk-aac cmake工程使得fdk-aac能cmake跨平台编译。这里使用Windows下的MSVC编译器编译。 准备 下载fdk-aac源码(本文使用...

2019-11-23 17:07:29 282 0

原创 音频编解码之G726

《音视频应用开发系列文章目录》 在网上找了一份G726和PCM互相转化的代码(链接)。在VS2015下配置然后编译。使用附带的.pcm音频文件《上海滩》进行其demo代码测试,会发现成功运行但是有问题,pcm转成g726后,再将g726转成pcm,使用audacity进行pcm原始数据播放会发现...

2019-11-20 20:29:48 389 1

原创 FFmpeg音频重采样

《音视频应用开发系列文章目录》 相关函数 swr_alloc_set_opts // 分配一个重采样 swr_init// 初始化重采样 swr_convert// 重采样 swr_free// 释放重采样 planar和packet ffmpeg定义了以下音频数据的存储方式和存储格...

2019-11-12 17:22:23 125 0

原创 windows部署nginx+rtmp服务器并进行推拉流

《音视频应用开发系列文章目录》 准备资源 OBS:用于推流 VLC:用于拉流 NGINX4WIN:前人Windows编译版http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip NGINX源码:自行编译的可以下载http...

2019-10-31 18:24:24 479 0

原创 海思音频开发

《音视频应用开发系列文章目录》 海思音频文档 原始音频信号以模拟信号的形式给出后,通过 Audio Codec,按一定采样率和采样精度转换为数字信号。 Audio Codec 以 I2S 时序或 PCM 时序的方式,将数字信号传输给 AI设备。芯片利用 DMA 将 AI 设备中的音频数据搬移到...

2019-10-10 20:32:51 297 0

原创 RTP载荷G711A/G711U/PCM/G726音频

《音视频应用开发系列文章目录》 编码RTP over G711A/G711U/PCM音频的大致过程 1.添加RTP12字节的头 2.添加payload(G711A/G711U/PCM/G726的真实数据) RTP打包图 伪代码 void rtp_send_g711(char *d...

2019-10-10 19:55:42 586 0

原创 RTP载荷H264视频

《音视频应用开发系列文章目录》 编码RTP over H264的大致过程 1.判断H264的NALU数据大小和MTU(Maximum Transmission Unit[normal 1500bytes])的关系 小于MTU:发送整个NALU 大于MTU:分片发送NALU 2.添加RT...

2019-10-10 19:23:56 178 0

原创 RTP载荷AAC音频

《音视频应用开发系列文章目录》 编码RTP over AAC的大致过程 1.添加RTP12字节的头 2.如果AAC有ADTS头,则跳过7字节的data 3.添加4字节的AU_HEAD 字节1:0x00 字节2:0x10 字节3:(data_len & 0x1fe0) &...

2019-10-09 20:04:32 332 0

原创 RTSP音视频传输频笔记

《音视频应用开发系列文章目录》 RTSP在音视频传输中的位置 RTSP协议是一个应用层协议,主要针对媒体流传输过程的控制和配置,提供OPTIONS,DESCRIBE,SETUP,TEARDOWN,PLAY,GET_PARAMETER,SET_PARAMETER等操作命令。 下图是客户端请求r...

2019-09-25 20:17:03 691 0

原创 H264学习笔记

《音视频应用开发系列文章目录》 学习路线 首先学习H264是啥,H264的码流数据结构。 1.《H264视频码流格式浅析》 2.《入门理解H264编码》 看完上面两篇大佬的文章基本对H264的码流结构有所认识。 一些记录 1.H264和X264的区别 H264 是一个标准,一种码...

2019-09-17 19:40:33 161 0

原创 FFmpeg学习笔记

《音视频应用开发系列文章目录》 FFmpeg介绍 一个强大的音视频编解码内核工具(OR百度百科) FFmpeg获取 ffmpeg官网:http://ffmpeg.org/ ffmpeg编译好的包:https://ffmpeg.zeranoe.com/builds/ ffmpeg有三个版...

2019-07-12 16:38:54 650 0

原创 KCG-VISION:条码读取

新建工程 新建工程"Read_Code",其过程或下载软件可以参考《KCG-VISION:获取图片》。 实验目的 从标准相机实时读取条码,并画出条码的位置。 相关算子 如果没有标准相机,使用其他图片也可以,最终的算子脚本流程如下: 运行效果 软件下...

2019-06-24 11:28:30 477 0

原创 KCG-VISION:缺陷检测

新建工程 新建工程"Image_Diff",其过程或下载软件可以参考《KCG-VISION:获取图片》。 实验目的 一张标准图像,一张缺陷图像,并且这两张图像存在平移旋转的差异,找到缺陷位置。 标准图像 缺陷图像 相关算子 最终的算子脚本如下图: ...

2019-06-24 11:11:40 832 0

提示
确定要删除当前文章?
取消 删除