自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(183)
  • 资源 (9)
  • 收藏
  • 关注

原创 linux服务器gcore排查问题步骤

info symbol 0x008f625c 看该内存对应的函数。其中0x9007 即 790端口,为十进制的1936端口。cat /var/log/mcelog 看看系统信息。data -d @1709193878 看看时间戳。dmesg -T 看看硬件设备。

2024-03-16 17:15:44 393

原创 CDN直播基础概念与优化思路

nginx、squid、varnish、openresty、ats、haproxy等。

2024-02-15 20:42:43 524

原创 linux服务端c++开发工具介绍(vscode版)

本文适合于有一定c++开发经验,但是还不明确如何到linux服务端开发程序的同学。

2023-10-03 16:45:07 743

原创 哈希环如何用在直播调度系统

直播CDN系统通常用L1或者L2的缓存集群,缓解中心服务器压力。缓存集群需要满足2个条件。

2023-05-21 12:00:10 847

原创 rtmp与webrtc系统如何互通

rtmp如何接入webrtc的视频会议系统总结

2023-05-14 10:22:25 784

原创 直播连麦实现的三种方法

观众用手机看到rtmp协议的直播,可以看到传统主播直播、主播之间PK、主播与观众连麦等场景的视频。这里主播直接上行rtmp协议是不可行的,实现不了连麦的功能,达不到连麦交流的要求。

2023-05-07 22:53:50 698

原创 云上网络规划CIDR地址划分的参考示例

例如:sip-vswitch-pre-cn-beijing-b表示北京的预发环境b机房-可用区,sip-vswitch-pub-ack-pod-cn-shanghai-a表示上海线上阿里云k8s集群的a号POD-可用区。例如:sip-vpc-pre-cn-beijing表示北京的预发环境,sip-vpc-pub-cn-shanghai表示上海的线上环境。

2023-05-03 18:06:19 795

原创 Electron的打包windows exe的方法

Electron的打包windows exe的独立方法

2023-05-02 09:44:26 1617

原创 Electron解决“NODE_MODULE_VERSION xxx”不匹配的问题

Electron的发布版本和NodeJs的发布版本的NODE_MODULE_VERSION不一致,例如:我的Electron的发布版本是22,对应的NODE_MODULE_VERSION是108,而NodeJs的版本是18,对应的NODE_MODULE_VERSION是110,而两者都是官方版本,如何解决这个问题?

2023-04-30 11:54:15 3718

原创 【CSDN竞赛第五期】“三而竭”采用等比求和公式法的思考

1、CSDN竞赛第五期的”三而竭”采用等比求和公式法的错误分析2、对CSDN写代码比赛平台的一点建议

2022-09-12 11:21:14 377

原创 windows映射ubuntu的samba服务(完整版)

ubuntu的配置:使用root用户身份登陆终端,输入命令:sudo -s sudo apt-get install samba 创建共享文件夹<文件夹名> chmod 777<文件夹名> -R,3和4步骤可以使用已有的文件夹目录 配置/etc/samba/smb.conf,在最后加入以下内容: [share] path = /home/Share 路径+<文件夹名> available = yes browsea...

2021-02-15 12:24:09 1627 3

原创 H.235协议的视频会议加密基础

H.235建议中,重点推荐使用Diffie-Hellman密钥交换方案,它是由W.Diffie和M.Hellman于1976年提出的算法,可用于网络环境下用户双方安全地交换一个密钥,时至今日该算法仍然是最为有效和安全的密钥交换算法。Diffie-Hellman算法描述如下:设P是一个大素数,a∈Zp是有限循环群的生成元,即p和a互质,p和a公开,所有用户均可获取,并将为所有用户所共用。用户A随机选取一个大数rA,0≤rA≤p-2:并计算SA=a^rA(mod P),然后将结果SA,a,p传送给用户B

2021-02-08 14:05:07 1269 2

原创 U盘装系统try(hd0,0):fat32:no abspe的解决方法

进入BIOS设置:1、关闭secure boot;2、必须UEFI only的模式启动,不能选Legacy或者Both3、选择U盘启动,并F10保存退出。

2020-07-30 10:18:42 1491

原创 用swig完成多语言支持

阅读freeswitch代码时,发现有个languages的mod,其中的作用为,支持java、python等多语言。采用的跨语言的工具叫做swig,Simplified Wrapper and Interface Generator。这个工具的大致工作方法是1、生成c或cpp的包装文件xx_wrap.cpp,生成某语言的调用文件,比如xx.py。2、用xx_wrap.cpp和工作函数,生成动态库xx.so。3、python工程通过xx.py调用xx.so.具体操作如下:1、编写ex

2020-07-24 16:59:34 336

原创 海思Hi3559A支持单帧多slice解码的方法配置(不花屏不卡顿)

Hi3559A中,默认单帧最多支持16个slice,解码时通过:cat /proc/umap/vdec可以查询到MaxVPS MaxSPS MaxPPS MaxSlice以上是与H.264、H.265解码相关的内存分配参数。如果用默认参数,对于单帧多slice和频繁gop的情况,会出现花屏和卡顿,解决方法是修改sample_comm_vdec.c在SAMPLE_COMM_VDEC_Start函数中,增加VDEC_PRTCL_PARAM_S ProtocolParam的设

2020-06-17 14:20:16 1616

原创 求全图的所有最短路径-floyd算法(弗洛伊德算法)

如果需要求出每两点之间的最短路,不必调用n次Dijkstra(边权均为正)或者bellman-ford(有负权)。有一个更简单的方法可以实现——Floyd-Warshall算法,以下代码熟记即可,即i到j的最短路径,是i到j的直连或者通过任意k中转的最短路径:for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) d[i][j] =

2020-06-06 23:11:42 925

原创 分组加密的模式整理

分组密码是每次只能处理特定长度的一块数据的一类密码算法,DES和3DES是64比特,AES是128比特。 流密码是对数据流进行连续处理的一类密码算法。流密码中一般以1比特、8比特或32比特等单位进行加解密。 分组密码处理完一个分组就结束了,因此不需要通过内部状态来记录加密的进度;而流密码是对一串数据流进行连续处理,因此需要保持内部状态。目前流密码也是通过分组密码来实现,具体模式总结如下: 模式 名称 优点 ...

2020-06-06 18:26:48 359

原创 ffmpeg的AVBufferRef的用法

基于ffmpeg的4.2.2学习c实现的智能指针的用法:1、用ref结构,类似于侵入式智能指针的思路,即把“数据”和“引用计数”绑到一个数据结构里,以防内存泄漏,机制简单。2、用atomic的机制,保证引用计数ref的线程安全。3、由于c实现的,没有重载“=”赋值符号,所以使用时注意别用错了。示例如下:extern "C" {#include "libavutil/buff...

2020-03-17 23:34:00 1679

原创 vs的atomic和linux的stdatomic.h的原子操作的基本用法

作为引用计数的计数器,操作如下:#include <atomic>#include <iostream>using namespace std;int main(){ atomic_uint refcount; atomic_init(&refcount, 1);//初始化为1 int cur = atomic_load(&refcou...

2020-03-17 16:50:11 2876

原创 av_freep和av_free的区别

ffmpeg推荐用av_freep,av_freep可以解决dangling指针的问题:avfreep的用法如下:int main(){ int size = 100; uint8_t *data = NULL; data = av_malloc(size); av_freep(&data); //av_free(data); return 1;...

2020-03-16 16:50:28 6028

原创 RC4流加密的基本流程

1、由随机数生成16位根密钥k2、通过+,-和位置移动,把16位密钥k扩充为256位的中间变量S和T3、根据明文的长度Length,生成Length长度的密钥流K4、按Length,将密钥流K和明文按字符异或。具体代码如下://参考huangyimo博客,《RC4加密算法的原理及实现》#include <vector>#include <iostream...

2020-03-15 10:08:50 1720

原创 H264编码的整数DCT的测试代码

整数DCT的作用是变换编码,提取信号特征。H264的整数DCT分两步:1、DCT整数部分变换;2、DCT实数部分变换。实数部分和量化在一起进行,可以统一损失精度,也可以降低运算复杂度。整数部分用蝶形变换,代码如下:#include <iostream>using namespace std;#define BLOCK_SIZE 4int block[BLOC...

2020-02-19 23:14:59 799 1

原创 leetcode 1335. Minimum Difficulty of a Job Schedule的解法(二维动态规划)

题目大意:把这个数组分为d份,每份至少为1个元素,每份的最大值为这份的值,求所有份的和的最小值。本题用工作计划的形式表达了一下,份数用天数表示,每份的值用工作量表示。题目思路:求最小值问题,用动态规划dp。详细思路:按天数和工作量两个变量,构造递归式dp[天数][完成的任务数量] = 工作量的最小值:1、按照工作量:即1天完成k个任务,为dp[1][k]=max{dp[1][k-1...

2020-01-27 08:56:37 1105

原创 回环发网络包不通(ping 127也不通)的解决方法

在linux上做“服务器+客户端”的网络收发验证,发现自己连不上自己。后来试试,回环ping自己也不通。查查原因,是自己裁的系统少了一句配置:ifconfig lo 127.0.0.1没有配lo,才会导致我的诡异问题。...

2019-10-22 20:11:34 2410

原创 fdk-aac解码AAC_LOAS编码音频的例子

在海思的mpp中,音频编码设置为aac-ld后官方推荐按照LOAS(Low Overhead Audio Stream)形式进行打包封装,其中LOAS的封装与ADTS类似,为“Header+frame”的形式,其中LOAS的Header不是固定长度,需要通过解析才能得到Raw data,这比ADTS的固定7字节头信息要复杂的多。好在LOAS的头信息解析在fdk-aac中已经完成了,...

2019-10-08 20:07:06 3014

原创 fdk-aac检查ASC(audio special configure)配置的方法

话不多说,测试代码如下:#include <stdio.h>#include <stdint.h>#include <unistd.h>#include <stdlib.h>#include "aacdecoder_lib.h"#include <iostream>using namespace std;int ma...

2019-10-08 19:26:23 1223

原创 linux的标准计时函数的代码例子

精确到ms,可以在arm上运行,代码如下:#include <sys/time.h>int main(int argc, char *argv[]){ timeval starttime,endtime; gettimeofday(&starttime,0); //before test 10 0000 fec 1500RTPs FEC enc / dec t...

2019-09-17 18:59:38 467

原创 RS码FEC机制的实现方法(基于Luigi Rizzo的代码)

Luigi Rizzo大神在1997年写了一个基于范德蒙矩阵的FEC的纠错代码,这套代码本身开源并且在多个知名项目被使用。我基于这套fec代码,也做了一份RS纠错的例子。Rizzo, L., "Effective Erasure Codes for Reliable Computer Communication Protocols", ACM SIGCOMM Computer Commun...

2019-09-10 21:15:19 3348 8

原创 leetcode 1186. Maximum Subarray Sum with One Deletion 的解法(数组去除元素)

题目为:给你一个整数数组,返回它的某个 非空子数组(连续元素)在执行一次可选的删除操作后,所能得到的最大元素总和。换句话说,你可以从原数组中选出一个子数组,并可以决定要不要从中删除一个元素(只能删一次哦),(删除后)子数组中至少应当有一个元素,然后该子数组(剩下)的元素总和是所有子数组之中最大的。注意,删除一个元素后,子数组 不能为空。题目分析:即动态规划的最基本题型”连续子数组的最大和“...

2019-09-08 23:43:36 903

原创 linux的configure的交叉编译配置

以arm64位海思编译为例,gcc的交叉编译器是aarch64-himix100-linux-gcc,所以autoconfigure的交叉编译工具配置如下:./configure --host aarch64-himix100-linuxmake即通过host的前缀,来实现交叉编译配置。...

2019-09-06 20:26:45 2279

原创 libev同时监听多路IO的方法

以libev替代epoll,监听多路io的方法,以同时监听tcp连接和cmd命令行输入两个阻塞IO的方法为例如下:#include <stdio.h>#include <string.h>#include <sys/unistd.h>#include<sys/socket.h>#include<netinet/in.h>#...

2019-09-05 19:02:42 493

原创 linux遇到非法指令( Illegal instruction)的处理方法

1.设置linux系统可以生成dumpulimit -c unlimited2.编译程序可以为debug版本gcc utest.c -o utest -lpthread -lm -Wall -O0 -g3.运行生成dump非法指令 (核心已转储)在目录下,生成core文件4.用gdb打开core文件 gdb utest core其中utest是我第2步...

2019-08-30 19:45:09 30630

原创 海思Hi3559A的多分屏输出的方法

修改sample_vdec.c中的SAMPLE_H265_VDEC_VPSS_VO函数。(1)把u32VdecChnNum = 1;改成2或者3。(2)把stVoConfig.enVoMode=VO_MODE_1MUX;改成VO_MODE_4MUX编译,运行,就得到多分屏输出了。有同学说,字节宽度和vpss通道和图层尺寸也需要改,不过我没改也能4分屏输出,用的是MPP4.0...

2019-08-06 20:46:58 2237 1

原创 leetcode 1140. Stone Game II 的解法(动态规划标准例题)

题目是:亚历克斯和李继续他们的石子游戏。许多堆石子 排成一行,每堆都有正整数颗石子 piles[i]。游戏以谁手中的石子最多来决出胜负。亚历克斯和李轮流进行,亚历克斯先开始。最初,M = 1。在每个玩家的回合中,该玩家可以拿走剩下的 前 X 堆的所有石子,其中 1 <= X <= 2M。然后,令 M = max(M, X)。游戏一直持续到所有石子都被拿走。假设亚历克斯和李都...

2019-08-03 06:19:48 1572

原创 海思Hi3559a解码视频加OSD图片的例子

目标:是在解码视频上叠加图片。(1)在sample_vdec.c中,找到解码的函数SAMPLE_H265_VDEC_VPSS_VO(2)在SAMPLE_H265_VDEC_VPSS_VO中,在step8: send stream to VDEC后面,添加在VO上显示图片的代码/************************************************ ...

2019-07-29 14:27:59 5449 17

原创 海思Hi3559a音视频同时播放的例子

在mpp/sample下新建av目录(1)编写Makefile,如下:# Hisilicon Hi35xx sample Makefileinclude ../Makefile.paramSRCS := $(wildcard *.c)TARGET := $(SRCS:%.c=%)SRCS += $(wildcard $(PWD)/adp/*.c)#compile linux o...

2019-07-24 11:16:50 5760 1

原创 配置海思Hi3559a的自启动项

配置Hisi的linux的自启动项的方法与x86的linux类似,自定义文件为vi /etc/init.d/rcS在文件最后添加#dong add ...

2019-07-24 10:45:29 1944

原创 海思vdec的Makefile结构

# Hisilicon Hi35xx sample Makefileinclude ../Makefile.paramSRCS := $(wildcard *.c)TARGET := $(SRCS:%.c=%)#compile linux or HuaweiLiteinclude $(PWD)/../$(OSTYPE).makprint: @echo "os is $(OSTYPE...

2019-07-22 13:51:30 707 1

原创 从零开始在海思Hi3559a运行demo

1)解压并安装交叉编译工具链在ubuntu下执行:cd /root/2015/hi3559a/aarch64-himix100-linuxsource ./aarch64-himix100-linux.install这时,aarch64-himix100-linux-gcc就已安装在ubuntu的默认目录/opt下面了,并且可以在命令行下执行。2)安装海思开发的sdk,下载Hi3...

2019-07-19 14:38:03 8432 7

原创 OpenGL ES3画矩形的方法

用JNI做OpenGL的开发,采用ES3进行开发,注意在app的build.gradle中,需要配置minSdkVersion的版本,因为低版本的android sdk是不支持ES3的,我这里配置的是minSdkVersion 21targetSdkVersion 28按照OpenGL的画三角形的经典教程,配好JNI调用,可以画出经典的红色三角形,其中红色的配置,在glsl中配置,gl...

2019-06-16 15:38:05 851

rs_fec.zip

RS码的例子,5个实体包,1个冗余包,可以调整比例。 通过FEC编码 forward error correction based on Vandermonde matrices

2019-09-10

tftp服务器(嵌入式开发)

嵌入式开发用的服务器,相比于linux的服务器的最大优点是免配置,免安装,绿色运行.方便对板卡进行文件的上传下载

2019-01-14

boost的tcp服务器

boost的tcp服务器,支持多并发和心跳检测等基本功能

2017-05-23

android studio写的ping程序app

android studio写的ping程序app,直接可以用。

2017-04-27

boost的asio做的udp接收程序带环形缓冲区

需要包含boost的路径为: include path: F:\boost_1_53_0 lib path:F:\boost_1_53_0\stage\lib 需要预定义的宏: _WIN32_WINNT=0x0700 在程序里写的接收ip为192.168.1.206,端口为 9002

2017-03-17

采用epoll模型设计多路udp接收程序

使用方法,在命令行下输入 ./RecvRtpAndSave 8000 16 其中8000是基础udp接收端口,16是接收16路流

2017-03-08

ffmpeg官网h264转码vs可编译

依赖的库: avcodec.lib avdevice.lib avfilter.lib avformat.lib avutil.lib postproc.lib swresample.lib swscale.lib 头文件目录: ~\ffmpeg-3.2.2-win32-dev\include 参数格式:in.h264 out.h264默认输入尺寸随意,输出转码为720x480大小。

2017-02-28

读取h264文件并发送为RTP码流

读取h264文件并发送为RTP码流

2017-02-24

接收RTP包保存为h264文件

接收RTP包保存为h264文件

2017-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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