- 博客(21)
- 资源 (8)
- 收藏
- 关注
原创 ffmpeg录制转发mediasoup的音视频流
在上一篇章讲述了,如何使用ffmpeg推送本地流到mediasoup(https://blog.csdn.net/qq_15559817/article/details/115698060?spm=1001.2014.3001.5501)本章讲述下如何使用ffmpeg录制mediasoup产生的音视频
2021-08-26 10:39:58
2192
16
原创 ffmpeg推流到mediasoup
0、前言mediasoup提供了PlainTransport可以接收裸RTP数据,可以通过ffmpeg.sh脚本推本地文件到mediasoup(ffmpeg.sh推流介绍脚本路径:mediasoup-demo/broadcasters/ffmpeg.sh)1、PlainTransport 分析( mediasoup.version >= 3.5.0 )PlainTransport 主要用于 RTP/RTCP (或者采用安全的srtp)以及 SCTP(DataChannel)的通讯连接。
2021-04-14 15:08:22
2222
2
原创 Jenkins+GitLab+SonarQube实现自动化代码检测(以C++代码为例)
一、安装SonarQube查看之前的博客https://blog.csdn.net/qq_15559817/article/details/100736498?spm=1001.2014.3001.5501二、安装Jenkins1、安装java jdk环境(1)更新软件包列表sudo apt-get update(2)安装openjdk-8-jdk(不要安装java11,不然之后jenkins会遇到各种问题)sudo apt-get install openjdk-8-.
2021-04-08 20:06:56
3359
1
原创 RTP载荷PS流全面分析
1、PS流封包格式视频关键帧的封装:RTP|PS header|PS system header|PS system Map|PES header|H264 data 视频非关键帧的封装:RTP|PS header|PES header|H264data 音频帧的封装:RTP|PES header|G7112、服务端PS流接收组包和解析以海康DS-IPC-B12H2-I为例(1)rtp over udp80 60 00 00 00 00 00 00 00 00 04 00 00 0.
2020-09-24 13:49:57
2650
原创 nginx部署mediasoup
0、服务器环境Centos7Node.js v14.0.0GCC >= 4.9(CentOS7默认的gcc版本是v4.8.5,mediasoup由于使用了大量c++11特性,要求>= 4.9)Python 2.7.5(3也没问题,不过要注意编译脚本需要的python的命令,对python3做个软链接好了)root权限1、node.js安装通过nvm安装的node.js开发运行环境 (这里获取最新的nvm install script)curl -o- https
2020-08-29 16:06:04
2441
5
原创 RTP载荷h264码流的解包与封包
一、H264介绍1.1 h264概述h264是一种视频压缩标准。经过压缩后的帧分为:I帧,P帧和B帧:I帧:关键帧,采用帧内压缩技术。(自身可以通过视频解压算法解压成一张单独的完整的图片) P帧:向前参考帧,在压缩时,只参考前面已经处理的帧(只需要参考前面的I帧或P帧)。采用帧音压缩技术。 B帧:双向参考帧,在压缩时,它即参考前而的帧,又参考它后面的帧(需要同时参考前面和后面的I帧或P帧)。采用帧间压缩技术。除了I/P/B帧外,还有图像序列GOP。GOP:两个I帧之间是一个图像序列
2020-05-15 11:06:53
5473
转载 AAC文件格式解析
OUTLINE: * AAC概述 * AAC规格简述 * AAC特点 * AAC音频文件解析 ——ADIF&ADTS格式 ——ADIF&ADTS头信息 ——ADIF&ADTS数据信息 ——AAC文件处理流程 * AAC解码流程 ——技术解析 * 术语说明...
2020-05-14 09:28:50
394
原创 IP协议首部详解
1、IP协议概述 IP是TCP/IP协议中最为核心的协议,所有的tcp、udp、icmp、igmp等都是以IP数据报格式传输的,但它提供的是不可靠、无连接的数据包传输服务。不可靠表示它不能保证IP数据包能成功的到达目的地 无连接 表示ip并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的。 普通的IP首部长为20个字节,除非含有选项字段。2、IPv4首...
2020-02-24 15:43:15
15835
原创 国标GB28181平台对接接口详解
1.1 平台注册下级平台主动向上级平台注册; 注册鉴权信息(用户名和密码)由上级提供; 举例说明:下级--->上级REGISTER sip:62010000002000000001@10.130.140.82:7100 SIP/2.0 // 62010000002000000001为上级平台IDCall-ID: c82dee890ea56d9d332fe4a5dbd277...
2019-12-25 16:58:14
14598
6
原创 sip协议的超时机制
0、前言:在讲解sip协议的超时机制之前,先简单地介绍一下sip协议中的message、dialog、session 和 transaction(1)Messages(消息) 消息是在服务器和客户端之间交换的独立文本,有两种类型的消息,分别是请求(Requests)和响应(Responses)。(2)Dialog(对话) 对话是两个UAs(use...
2019-12-19 11:04:07
5599
原创 C++11智能指针之unique_ptr
0、前言针对内存泄露的问题,先提下C语言中该怎么办?有几点建议:编写时尽量遵循函数内申请,函数内释放的原则 注意成对编写malloc和free 使用静态扫描工具,如pclint、cppcheck等 使用内存检测工具,如valgrind1、unique_ptr介绍(1)一个unique_ptr持有所指对象的独有权,即同一时刻只能有一个unique_ptr指向同一个对象。当这个u...
2019-11-26 19:54:11
529
原创 C++ STL之Vector介绍
0.前言在讲解vector之前,先简单的介绍下STL。C++ STL是(Standard Template Library标准模板库)是通用类模板和算法的结合,它提供给程序员一些标准的数据结构的实现如queue(队列),list(链表),和stacks(栈)等。C++ STL提供了三类数据结构的实现:(1)顺序容器vector 从后面快读的插入和删除,直接访问任何元素deq...
2019-11-26 19:06:39
443
原创 SonarQube+cppcheck实现C++代码扫描
背景最近接收到C++代码检测的需求,一开始上网找了很久,sonar的检测都是扫描java、web等,很少有C++的,现将自己调研结果记录于此。工具准备SonarQube工具:展示扫描报告,版本6.7以上 sonar_scanner工具:代码扫描工具 Cppcheck工具:Cppcheck是一种C/C++代码缺陷静态检查工具,不同于C/C++编译器及其它分析工具,Cppcheck只检...
2019-09-11 16:57:04
19398
15
原创 C++中如何调用C接口
前言如何在C++代码中调用写好的C接口?你可能会奇怪,C++不是兼容C吗?直接调用不就可以了?这里我们先按下不表,先看看C++如何调用C代码接口。C++如何调用C接口为什么会有这样的情况呢?想象一下,有些接口是用C实现的,并提供了库,那么C++中该如何使用呢?我们先不做任何区别对待,看看普通情况下会发生什么意想不到的事情。首先提供一个C接口://test.c#include...
2019-08-28 17:18:30
1192
原创 Centos yum安装MySQL8.0详解
在此之前写过centos6.5 yum安装MySQL6.5版本的文章,有需要的可以去了解下:https://blog.csdn.net/qq_15559817/article/details/830388371、卸载系统自带的MySQL版本,可以使用以下命令查看yum list installed | grep mysql然后,使用rpm命令卸载Mysql(根据自己的list...
2019-07-25 18:21:05
404
原创 mysql 报错This function has none of DETERMINISTIC解决方案
出错信息:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_func...
2018-12-17 15:37:22
405
原创 MySQL主从复制
一、复制概述 MySQL内建的复制功能是构建大型、高性能应用程序的基础。将MySQL的数据分布到多个系统上,这种分布的机制,是通过MySQL的某一台主机的数据复制到其他主机(slave)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器...
2018-12-13 11:03:08
160
转载 MySQL数据库备份与还原(基于binlog的增量备份)
一、简介1.1 增量备份简介 增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。这种备份方式最显著的优点就是:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。但增量备...
2018-12-04 16:01:25
606
原创 Centos6.5 yum安装MySQL5.6版本
1.新开的云服务器,需要检测系统是否自带安装mysql[root@cpk src]# yum list installed | grep mysqlmysql-libs.x86_64 5.1.71-1.el6 @anaconda-CentOS-201311272149.x86_64/6.52.如若系统自带mysql,需要先移除掉已安装的版本yum -y re...
2018-10-13 15:47:58
808
转载 MYSQL的COMMIT和ROLLBACK使用讲解
MYSQL的COMMIT和ROLLBACK从功能上划分,SQL 语言可以分为DDL,DML和DCL三大类。1. DDL(Data Definition Language)数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ;CREATE---创建表ALTER---修改表DROP---删除表2. DML(Data Manipulation Language)...
2018-08-06 10:18:37
5225
1
原创 Linux安装mini-xml依赖库
1、从官网下载源码安装包https://github.com/michaelrsweet/mxml/releases直接下载.tar.gz包解压安装,下载版本看个人喜好,建议下载2.10版本。2、解压mxml-2.10.tar.gz文件: 先使用su root命令切换到root权限(否则后续的编译安装会出现权限不够) tar -xzvf mxml-2.10.ta...
2018-02-07 10:27:04
980
RTSP实时流协议(RFC2326中文版).pdf
2019-11-13
LuaStudio9.2.7.zip
2019-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人