- 博客(186)
- 资源 (9)
- 收藏
- 关注
原创 linux服务器网络常见工具入门
用于获取网络连接的ip、端口、pid、进程名的工具linux服务端命令举例如下,a是all,n是数字,t是tcp,p是pid,在windows下,p需要换成o输出可见,其中46701是进程号。
2024-05-03 11:18:17
260
3
原创 SystemTap (stap) 工具入门
stap是linux服务端 跟踪/探测 调试的工具,详见适用于多进程调试,例如nginx,同时避免了gcore/gdb的麻烦。本文入门介绍2则入门用法。
2024-05-02 12:20:52
808
1
原创 linux服务器gcore排查问题步骤
info symbol 0x008f625c 看该内存对应的函数。其中0x9007 即 790端口,为十进制的1936端口。cat /var/log/mcelog 看看系统信息。data -d @1709193878 看看时间戳。dmesg -T 看看硬件设备。
2024-03-16 17:15:44
831
原创 直播连麦实现的三种方法
观众用手机看到rtmp协议的直播,可以看到传统主播直播、主播之间PK、主播与观众连麦等场景的视频。这里主播直接上行rtmp协议是不可行的,实现不了连麦的功能,达不到连麦交流的要求。
2023-05-07 22:53:50
993
原创 云上网络规划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
938
原创 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
6634
1
原创 【优快云竞赛第五期】“三而竭”采用等比求和公式法的思考
1、优快云竞赛第五期的”三而竭”采用等比求和公式法的错误分析2、对优快云写代码比赛平台的一点建议
2022-09-12 11:21:14
453
原创 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
2141
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
1873
3
原创 U盘装系统try(hd0,0):fat32:no abspe的解决方法
进入BIOS设置:1、关闭secure boot;2、必须UEFI only的模式启动,不能选Legacy或者Both3、选择U盘启动,并F10保存退出。
2020-07-30 10:18:42
1697
原创 用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
428
原创 海思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
1877
原创 求全图的所有最短路径-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
1219
原创 分组加密的模式整理
分组密码是每次只能处理特定长度的一块数据的一类密码算法,DES和3DES是64比特,AES是128比特。 流密码是对数据流进行连续处理的一类密码算法。流密码中一般以1比特、8比特或32比特等单位进行加解密。 分组密码处理完一个分组就结束了,因此不需要通过内部状态来记录加密的进度;而流密码是对一串数据流进行连续处理,因此需要保持内部状态。目前流密码也是通过分组密码来实现,具体模式总结如下: 模式 名称 优点 ...
2020-06-06 18:26:48
443
原创 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
1821
原创 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
3117
原创 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
6738
原创 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
1824
原创 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
903
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
1190
原创 回环发网络包不通(ping 127也不通)的解决方法
在linux上做“服务器+客户端”的网络收发验证,发现自己连不上自己。后来试试,回环ping自己也不通。查查原因,是自己裁的系统少了一句配置:ifconfig lo 127.0.0.1没有配lo,才会导致我的诡异问题。...
2019-10-22 20:11:34
2810
原创 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
3304
原创 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
1443
原创 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
510
原创 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
3888
8
原创 leetcode 1186. Maximum Subarray Sum with One Deletion 的解法(数组去除元素)
题目为:给你一个整数数组,返回它的某个 非空子数组(连续元素)在执行一次可选的删除操作后,所能得到的最大元素总和。换句话说,你可以从原数组中选出一个子数组,并可以决定要不要从中删除一个元素(只能删一次哦),(删除后)子数组中至少应当有一个元素,然后该子数组(剩下)的元素总和是所有子数组之中最大的。注意,删除一个元素后,子数组 不能为空。题目分析:即动态规划的最基本题型”连续子数组的最大和“...
2019-09-08 23:43:36
953
原创 linux的configure的交叉编译配置
以arm64位海思编译为例,gcc的交叉编译器是aarch64-himix100-linux-gcc,所以autoconfigure的交叉编译工具配置如下:./configure --host aarch64-himix100-linuxmake即通过host的前缀,来实现交叉编译配置。...
2019-09-06 20:26:45
2486
原创 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
589
原创 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
33222
原创 海思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
2464
1
原创 leetcode 1140. Stone Game II 的解法(动态规划标准例题)
题目是:亚历克斯和李继续他们的石子游戏。许多堆石子 排成一行,每堆都有正整数颗石子 piles[i]。游戏以谁手中的石子最多来决出胜负。亚历克斯和李轮流进行,亚历克斯先开始。最初,M = 1。在每个玩家的回合中,该玩家可以拿走剩下的 前 X 堆的所有石子,其中 1 <= X <= 2M。然后,令 M = max(M, X)。游戏一直持续到所有石子都被拿走。假设亚历克斯和李都...
2019-08-03 06:19:48
1654
原创 海思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
5770
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
6106
1
原创 配置海思Hi3559a的自启动项
配置Hisi的linux的自启动项的方法与x86的linux类似,自定义文件为vi /etc/init.d/rcS在文件最后添加#dong add ...
2019-07-24 10:45:29
2078
rs_fec.zip
2019-09-10
boost的asio做的udp接收程序带环形缓冲区
2017-03-17
ffmpeg官网h264转码vs可编译
2017-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人