- 博客(773)
- 资源 (17)
- 收藏
- 关注
原创 CentOS7 离线部署docker和docker-compose环境
1. 下载docker tar.gz包下载地址:本文选择版本:23.0.62.创建docker.service文件3. 一键安装脚本注意: 安装脚本和docker.service文件放在安装包的同级目录下4. 执行脚本./install_docker.sh tar包路径解压tar包...docker/docker/ctr将docker目录移到/usr/bin目录下...将docker.service 移到/etc/systemd/system/ 目录...添加文件权限...
2024-09-25 16:39:45 1287
原创 janus-gateway的videoroom插件的RTP包录制功能源码详解
janus-gateway在配置文件设置后,可以实现对videoroom插件的每个publisher的音频,视频,数据的RTP流录制成mjr文件。对于音频,视频的mjr文件,可以使用自带的postprocessing工具janus-pp-rec转成mp4文件。每个publisher音频和视频mjr文件是分立的两个文件,需要使用ffmpeg将两个合成一个mp4文件。
2024-02-24 19:49:55 1064
原创 terminate called after throwing an instance of ‘std::regex_error‘解决办法
terminate called after throwing an instance of 'std::regex_error'解决办法
2023-11-27 14:27:37 1061
原创 Apache Thrift C++库的TThreadPoolServer模式的完整示例
1) 要有完整的request 和 response;2) 支持多进程并行处理任务;3)子进程任务结束后无僵尸进程。
2023-08-05 16:43:17 663
原创 步步详解:Apache Thrift C++库从编译到工作模式DEMO
确定相关依赖软件的版本:autoconf-2.69,automake-1.14,bison-2.5.1,boost_1_70_0,libevent2 ,另外 thrift-0.16.0 编译依赖C++11,gcc版本需支持。gcc、g++、gdb安装过程略。wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gztar -xvf autoconf-2.69.tar.gzcd autoconf-2.69./configure --prefix=/usr
2023-08-04 23:27:26 489
原创 FFmpeg-4.2.4的去logo源码分析
1.源码libavfilter/vf_delogo.c2.源码分析/** 去logo算法, 函数的参数解释如下:w: 输入图像的宽度h: 输入图像的高度logo_x: 标志区域左上角的x坐标logo_y: 标志区域左上角的y坐标logo_w: 标志的宽度logo_h: 标志的高度band: 处理区域周围的带宽大小show: 是否在处理区域周围显示一个矩形,用于调试参数direct: 如果为非零值,则进行原地处理函数处理的解释如下:函数首先计算处理区域的边界,以确保不会
2023-07-23 18:01:02 653
原创 FFmpeg的抽帧filter:select的应用与源码分析
select用于选择哪些帧进入到后续的处理流程,或称为 抽帧 滤镜;基于ffmeg进行抽帧共有四种方式:> 抽取视频指定类型的帧(I/P/B)> 抽取视频场景转换帧> 根据时长进行均匀抽帧> 抽取指定时间的视频帧
2023-01-17 09:28:27 1227
原创 Janus的STUN原理与抓包分析
和STUN协议相关的文档一共有三个: RFC 3489, RFC 5389和 RFC 5780STUN的Message由两个部分组成,分别是:Message header (消息头) 和Message attributes (消息属性)一个STUN消息可以包含0个或者多个消息属性,这些属性有一个通用的头部。
2023-01-16 09:30:43 912
原创 一种视频判重算法和系统架构设计
比较和判断两个视频的重合度(视频判重),确定它们之间的共同点和不同点有很多方面的应用。包括:自动搜索并比对第三方的视频,以判断对方是否未经授权使用你的版权内容;监视授权用户的视频内容是否和原授权内容一致,以保证内容不被非法篡改;比较PGC/UGC用户上传的视频,判断上传内容是否搬运,或只是做了简单的修改;
2023-01-05 14:44:18 577
翻译 Jattack: janus-gateway压测工具
本文介绍了Jattack,它是一种用于分析支持WebRTC的服务器端组件性能的自动化压力工具。Jattack最初是以对众所周知的Janus WebRTC网关进行彻底的可扩展性分析为主要目标的。因此,它重新使用了大多数Janus核心堆栈组件,以便可靠地模拟可动态调整数量的WebRTC客户端的行为。通过编写一个小的“控制器”组件,确实可以以编程方式再现特定的测试场景,该组件负责恰当地编排场景本身。该工具的通用性,加上基于控制器的可编程方法带来的灵活性,
2022-12-12 15:27:12 1076 5
原创 步步详解IntelliJ IDEA创建springboot项目并运行
SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。我们在学习 Spring 的时候说过 Spring 框架是为了简化开发的,而 SpringBoot 是为了简化 Spring 开发的,由此可见,使用 SpringBoot 开发将会更加的方便简捷。那 SpringBoot 是如何简化开发的呢?我们以一个入门案例来说明。
2022-12-09 20:56:08 4968
原创 IntelliJ IDEA中生成jar包并运行
1.IntelliJ IDEA中的java项目生成jar包IntelliJ IDEA中的java项目(比如:myproject),可以生成jar包。本文以IntelliJ IDEA 2022.3 版本为例进行介绍,方法如下:1. 依次选择菜单:File->Project Structure...,打开“Project Structure”界面。2. 在打开界面的左侧列表中选择:Artifacts,点击右侧出现的+号。3. 在出现的菜单中依次选择:JAR->From modules with dependen
2022-12-05 22:51:26 13096
原创 WebRTC源码-信令之六:SDP协议与协商流程
SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议,它是一个基于文本的协议,用于会话建立过程中的媒体类型和编码方案的协商等.它不属于传输协议,它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议是也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。
2022-09-08 10:40:49 869
原创 websocket协议详解与抓包分析
Websocket是一种用于H5浏览器的实时通讯协议,本文对原理做了幽默讲解,分析了协议格式定义;并对WS,WSS进行了实际的抓包分析
2022-08-06 11:23:05 1811
原创 GStreamer应用开发手册学习笔记之二
第3章. 基础概念介绍本章将介绍GStreamer的基本概念。理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念。3.1. 元件(Elements)元件(element)是GStreamer中最重要的概念。你可以通过创建一系列的元件(Elements),并把它们连接起来,从而让数据流在这个被连接的各个元件(Elements)之间传...
2022-08-06 11:02:22 1107
原创 简单的 RTSP/HTTP/URL 通过 WebRTC输入到kurento
https://github.com/lulop-k/kurento-rtsp2webrtc/tree/masterKurento RTSP/HTTP URI to WebRTC exampleKurento Client JavaScript demosThis project is a simple example showing how to tranform a R
2022-08-06 11:00:36 447
原创 PhotoshopCS6视频教程学习笔记-基础部分之一
A03 认识主界面A04 新建文档1参数设置4.1 文件->新建->预设: 移动设备;4.2 QQ/微信截图导入PSStep1: QQ/微信截图->文件->新建->预设:剪贴板;Step2: 编辑->粘贴4.3 浏览器图片导入PSStep1: 浏览器->图片另存为;Step2: 文件->新建->预设:剪贴板;Step3: 编辑->粘贴...
2022-08-06 10:59:57 439
原创 FFmpeg源码剖析-通用:ffmpeg_parse_options()
ffmpeg_parse_options()函数位于ffmpeg_opt.c1. 函数概述它的功能主要有三个,解析命令行参数;打开输入文件,并解析数据,找到匹配每一个视频,音频,数据流的解码器;打开输出文件,并设置好输出的视频,音频,数据流的编码器;2. 函数调用结构图图 ffmpeg_parse_options()函数调用结构3. 代码...
2022-08-06 10:58:12 696
原创 websocket协议详解
WebScoket协议中,数据以帧序列的形式传输。考虑到数据安全性,客户端向服务器传输的数据帧必须进行掩码处理。服务器若接收到未经过掩码处理的数据帧,则必须主动关闭连接。服务器向客户端传输的数据帧一定不能进行掩码处理。客户端若接收到经过掩码处理的数据帧,则必须主动关闭连接。针对上情况,发现错误的一方可向对方发送close帧(状态码是1002,表示协议错误),以关闭连接。...
2022-08-06 10:39:29 4321
原创 webSocket的实现
WebSocket包括客户端和服务端,实现的语言大体可以分为四类:java,C/C++,object-C,javascript。
2022-08-06 09:33:20 2067
原创 使用vscode 创建vue2.0项目
1、安装vue-cli 点击终端-新终端,输入:npm install -g vue-cli 等待安装成功。 若安装失败,可以尝试使用: 1,配置淘宝镜像:npm config set registry https://registry.npm.taobao.org 2,配置完成后检验是否成功:npm config get registry 3,重新运行命令:npm install -g @
2022-06-18 17:40:01 1894
原创 Makefile通用模板
###EXECUTABLE:=11-8LIBDIR:=LIBS :=INCLUDES :=SRCDIR :=##CC := g++CFLAGS := -g -Wall -O3CPPFLAGS := $(CFLAGS)CPPFLAGS += $(addprefix -I, $(INCLUDES))CPPFLAGS += -MMD##RM-F := rm -f# # You shouldn't need to change anything below this poin
2021-11-15 11:56:20 889
原创 基于X264的动态帧率与动态码率调整的实现
1、动态帧率的实现1.1 实现思路依据动态调整因子(由网络状态,CPU状态、程序状态等组成),计算出当前帧的可用码率,再在时间轴上动态调用x264的API实现对YUV数据帧的编码,然后对编码帧打上非固定的动态时间戳,从而实现了码率不变,帧率动态调整技术,达到: 码率(清晰度)不变,流畅度变化的效果----即清晰度优先设置;1.2 如何指定编码成关键帧AVFrame* _v_frm;_v_frm->key_frame = key_frame;if (key_fra
2021-02-17 21:46:49 2217
原创 全局服务器调度简介
1. 全局服务器调度1.1 部署架构原理图下图是一个典型的通信系统的服务器部署图:说明:> 每个用户所在的地区有一个或多个IDC机房覆盖,> 每个IDC机房部署有一台或多台信令边缘服务器、一台或多台媒体边缘服务器;> 边缘IDC机房与中心IDC机房间可能有专线连接,也可能因为无专线而只能使用公网连接;1.2 全局服务器调度调度的流程如下 :Step1: 根据用户来源IP查出他所属的国家-城市-IDC运营商;Step2: 根据用户所属的国.
2021-02-16 22:35:32 976 1
原创 服务端媒体引擎框架
MCU(Meida Central Unit)是服务端的中央媒体处理单元,它有两大主要功能,一是管理由它处理的所有会话(Session)的业务逻辑;二是集中一个会话(Session)中所有用户(Channel)的音视频数据,对它们分别进行音视频的处理后,再分发给各个用户。1. MCU的整体架构下图为MCU的整体架构图:> 基于TCP协议的ProtoBuf信令,用于实现业务逻辑,及Session管理。Session管理包括Session的创建,用户加入或退..
2021-02-16 22:25:14 371 1
原创 客户端媒体引擎框架
双向音视频通信系统的客户端是一个复杂的子系统,它比起单向直播系统的推流客户端,播放客户端都要复杂,因为它需要在采集本地音视频推送到服务端的同时,还要从服务端接收音视频数据进行播放。而对于真正的实际生产用的客户端来说,它还需要有完整的业务逻辑实现,良好的健壮性,并适配各种平台,这更增加它的复杂度。本文介绍了一个完整的客户端的媒体引擎的基本框架,并对其核心工作原理做了介绍。1. 客户端媒体引擎架构下图是客户端媒体引擎的架构图:平台接入层:是对整个SDK的...
2021-02-16 22:19:20 548 1
原创 RTP协议封装音视频媒体数据详解
RTP协议对媒体数据(包括音频和视频)的封装是由指定的的协议文档规定。1. RTP封装H.264视频编码数据1.1 H.264 基本流的结构H.264 的基本流(elementary stream,ES)的结构分为两层,包括视频编码层(VCL)和 网络适配层(NAL)。视频编码层负责高效的视频内容表示,而网络适配层负责以网络所要 求的恰当的方式对数据进行打包和传送。引入 NAL 并使之与 VCL 分离带来的好处包括两方面:其一、使信号处理和网络传输分离,VCL 和 N..
2021-02-16 20:40:00 676
h264-to-rtmp.copy-frame
2024-02-20
FFmpeg SDK的数据结构与API函数详解
2014-05-04
ffmpegSDK_avc2ts
2014-05-04
ffmpeg SDK与示例程序
2014-04-21
UDP数据接收服务器
2013-09-18
HEVC(h.265)官方文档
2013-05-09
录制UDP组播数据到文件
2013-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人