- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 RTC技术(Webrtc)
什么是RTCRTC(Real time communication)实时通信,是实时音视频的一个简称,我们常说的RTC技术一般指的是WebRTC技术,已经被 W3C 和 IETF 发布为正式标准。由于几乎所有主流浏览器都支持 WebRTC 标准 API ,因此也让浏览器之间无插件化的音视频互通成为可能, 大大降低了音视频开发的门槛,开发者只需要调用 WebRTC API 即可快速构建出音视频应用。更广义的RTC技术,不单单局限于音视频,包括IM、图片、白板、文件共享等富媒体在内的实时交互也属于RTC技.
2021-06-01 19:05:03
8098
3
原创 RTMP 协议
RTMP 协议 64位JDK因为ZooKeeper服务器需要运行在JVM之上,所以首先需要部署JDK,这里我们选取jdk-8u161-linux-x64.tar.gz下载地址:http://www.oracle.com/technetwork/j...
2018-03-23 09:39:45
619
原创 基于HISI3716的 spice client 绘图优化
1.pixman pixman作为一个独立的第三方绘图库,其主要作用是根据操作模式及相应的数学算法对图形进行二次处理。常见的有Gradient(颜色渐变)、ROP(光栅操作)、矢量图操作、Alpha compositing、线性变换等。我们涉及的有基本的ROP操作(主要是像素的位运算)、Alpha compositing以及缩放用到的线性变换等。下图是Alpha compositin
2015-07-30 17:36:13
3513
原创 JNI编程
当你的C语言的库想在Java程序里被调用的话,这就需要用到java的jni编程了。jni编程其实也没什么难的地方,无非是java封装好几个接口,用C语言去实现罢了。 到这,相信你应该把jdk准备好了吧,这里就不单独把jdk安装放进来了。 好!linux下目录/home/lide/work/test/下创建myjni cd myjni/ 创建MyJni.javapublic c
2015-07-30 16:11:10
1311
原创 编译librtmp for Android
librtmp是一个强大的rtmp开源库,近期的一个Android项目涉及rtmp之类的技术,之前用ffmepg的时候也用到过它,那时候只是作为一个模块将librtmp作为第三方库编到ffmpeg里(ffmpeg本身也支持rtmp)。 将librtmp移植到Android上需要做的准备工作: 1. 准备好NDK并配置好环境变量 2. 当然事准备好librtmp的安装包了 git clon
2015-07-30 15:36:53
4970
原创 freeswitch服务器状态web端监控(可以更换为任意服务器进程)
首先在监控服务器上创建一个数据库monitor:mysql -h172.16.150.23 -uroot -prootcreate database monitor;use monitor;mysql> create table servers ( id int not null primary key auto_increment, hostname
2015-07-16 16:25:53
6039
1
原创 服务器自动发送邮件监测freeswitch进程
vim /etc/mail.rc 添加set from=******@163.com smtp=smtp://smtp.163.com:25set smtp-auth-user=******@163.com smtp-auth-password=****** smtp-auth=loginvim check.sh#!/bin/bashsource .bas
2015-06-09 15:59:02
1929
原创 成功编译ffmpeg的android硬解码模块libstagefright
准备环境:CentOS6.4 (64位)ffmpeg源码:git clone git://source.ffmpeg.org/ffmpeg.git ffmpegandroid NDK:http://developer.android.com/tools/sdk/ndk/index.html将ffmpeg/tools/build_libstagefright脚本移到f
2013-12-10 10:58:08
8844
转载 Android NEON指令学习
转自http://blog.youkuaiyun.com/chshplp_liaoping/article/details/12752749在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和armv8系列。芯片类型有:arm7、arm9、arm11、cort
2013-12-09 11:48:53
3305
原创 x264的一些参数设置对编码效率的影响
i_luma_deadzone[0]和i_luma_deadzone[1]分别对应inter和intra,取值范围1~32,测试可以得知,这连个参数的调整可以对数据量有很大影响,值越大数据量相应越少,占用带宽越低;码率控制模式有ABR(平均码率)、CQP(恒定质量)、CRF(恒定码率),ABR模式下调整i_bitrate,CQP下调整i_qp_constant调整QP值,范围0~51,值越大图
2013-10-30 15:06:13
2985
原创 valgrind 内训诊断生成log
valgrind --tool=memcheck --leak-check=full --leak-resolution=high --show-reachable=yes --show-possibly-lost=yes --undef-value-errors=yes --track-origins=yes --partial-loads-ok=yes --log-file=exec_log.
2013-10-21 17:52:18
1775
原创 调试程序测试malloc 和 free是否配对
#include #include void * debug_malloc(size_t size, const char *file, int line, const char *func) { void *p; p = malloc(size); printf("%s:%d:%s:malloc(%ld): p=0x%lx\n"
2013-10-18 17:34:37
1822
原创 shell脚本强制进程重启
while :doecho "Current DIR is " $PWDstillRunning=$(ps -ef |grep "$PWD/a.out" |grep -v "grep")if [ "$stillRunning" ] ; thenecho "TWS service was already started by another way"echo "Kill it
2013-10-18 09:13:40
2141
转载 gdb通过core file定位程序崩溃位置
Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位。 linux下如何产生core file?我们可以使用ulimit这条命令对core file文件的大小进行设定。一般默认情况下,core file的大小被设置为了0,这样系统就不dump出core file了。这时用如下命令进行设置:ulimi
2013-10-17 14:13:15
2699
转载 ffmpeg 中 swscale 的用法
如果想將某個PixelFormat轉換至另一個PixelFormat,例如,將YUV420P轉換成YUYV422,或是想變換圖的大小,都可以使用swscale達成。其中,PixelFormat 的列表在 libavutil/pixfmt.h 內定義。swscale的用法可以參考libswscale/swscale-example.c的sample code。主要function有三個
2013-10-10 17:16:46
1546
原创 win7下编译ffmpeg过程生成h264库过程
在window下编译ffmpeg的过程比起Linux下稍微麻烦了些,在这方面走了不少弯路,搞得头都大了有木有……现在特地记录下正确的编译过程。1.下载最新的ffmpeg:http://ffmpeg.zeranoe.com/builds/source/ffmpeg/2.准备编译环境MinGW:http://sourceforge.net/projects/mingw/files/
2013-09-16 10:12:37
3114
转载 x264参数中文详解(X264 Settings)
转自:http://www.front2end.cn/blog/Chinese-explanation-of-x264-parameters-(X264-Settings).html解释x264命令可选项的用途和使用方法。同执行 x264 --fullhelp 显示顺序。本文主要翻译:mewiki.project357.com/wiki/X264_Settings,同时参考doom9 论坛、S
2013-09-09 14:15:57
3096
原创 Linux常用指令及介绍
lspci------------------------------------------------------------------获取Linux外接设备板卡信息
2013-09-07 17:53:38
1359
原创 qp步进测试统计
qp每秒编码帧数(FPS)每秒颜色空间转换帧数(FPS)Avg QP.264文件大小(kb)I帧P帧150130000.81196,968553.5117022.42161,0361058.81111
2013-09-07 15:54:08
1654
原创 x264编码(颜色空间已经用多媒体指令优化)效率测试结果
300帧连续(MV) 线程数(Threads)每秒编码帧数(FPS)每秒颜色空间转换帧数(FPS)CPU占用率(%)16610401002486891575376562461036652
2013-09-07 15:45:35
2658
转载 x264函数说明(zhuan)
函数名称所以位置完成功能void x264_frame_filtercommon\mc.c帧滤波void x264_frame_init_lowrescommon\mc.c亮度1/2像素值初始化void x264_mc_initcommon\mc.c运动估计初始化stat
2013-09-04 11:12:55
1365
原创 x264编码后保存写入到.264文件中
/** * @note x264的编码示例. * 使用x264的版本为libx264-115 * 1. 示例是个死循环,会源源不断的编码,然后将数据写文件. * 2. 示例的行为是:编码1000帧后,取空编码缓冲区,然后循环执行这两步. * @author 戈 */#include #include #include #include "stdint.h"
2013-08-26 15:37:05
3306
1
转载 解读x264_param_default
void x264_param_default( x264_param_t *param ) { /* 开辟内存空间*/ memset( param, 0, sizeof( x264_param_t ) ); /* CPU自动检测 */ param->cpu = x264_cpu_detect();
2013-08-26 11:29:34
1536
原创 GCC检测CUP及编译环境是否支持MMX&SSE
最后,别忘了检查环境——INTRIN_MMX、INTRIN_SSE2、 INTRIN_AVX 宏是 zintrin.h 提供的,可用来在编译时检测编译器是否支持MMX、SSE2、AVX指令集。simd_mmx、simd_sse_level、simd_avx_level函数是 ccpuid.h 提供的,可用来在运行时检测当前系统环境是否支持MMX、SSE2、AVX指令集。GCC中的Int
2013-08-01 17:21:19
3319
转载 CPUID——检测CUP信息及程序的实现
CPUID是Intel Pentium以上级CPU内置的一个指令(486级及以下的CPU不支持),它用于识别某一类型的CPU,它能返回CPU的级别(family),型号(model),CPU步进(Stepping ID)及CPU字串等信息,从此命令也可以得到CPU的缓存与TLB信息.CPUID返回数据类型是在EAX寄存器里面定义的,而指令返回的数值则在存储在EAX,EBX,ECX和EDX寄存器
2013-08-01 17:11:40
3054
原创 如何搭建VC6下的SSE编译环境
首先要有VC6.0,IDE编程环境,1. 安装VS6sp.exehttp://download.microsoft.com/download/vb60ent/update/6/w9x2kxp/en-us/vcpp5.exe2. 安装vcpp5.xehttp://download.microsoft.com/download/vb60ent/update/6/w9x2kxp/en
2013-07-16 16:45:56
1606
原创 第一个Win32窗口程序,纪念自己的Windows编程之旅
#include "windows.h"LRESULT WndProc(HWND hWnd,UINT nMsg,WPARAM wParam,LPARAM lParam){ return DefWindowProc(hWnd,nMsg,wParam,lParam);}int WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance
2013-05-16 21:39:07
1502
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人