- 博客(47)
- 资源 (10)
- 收藏
- 关注

原创 ffmpeg推流技术汇总
本文记录整理使用ffmpeg搭建推流环境1,ffmpeg命令实际上也可以在推流时显示视频画面,对比接收端的视频画面,可以直观的得出延迟:fmpeg -re -i /opt/testMediaFiles/1280_720_5000k.264 -pix_fmt yuv420p -f sdl xxx.yuv2,ffmpeg推送裸流到rtmp服务器:ffmpeg -re -i /opt/testMediaFiles/1280_720_5000k.264 -r...
2020-09-13 13:07:05
610
原创 记录一次maven依赖的
简单的来说,我的一个库需要依赖某个版本的jar,结果因为复杂的依赖关系给到我的是另一个版本的jar,解决问题的关键是:1,不要想着Intelli idea多么牛逼,老想着图形化显示出一个漂亮的依赖树出来,那么多层的折叠树,仅仅是展开就很费工夫,更别提查找,最简单的还是mvn dependency:tree,查找不需要版本的依赖关系,这样就知道你不想要的那个版本的jar包是怎么依赖进来的,才能后续对症下药:2,用mvn的exclusions列表列出排除项目:<depe...
2021-09-02 20:14:39
190
原创 IOS端突然断开连接原因调查
10:01:33 DEBUG CustomVideoDecoder::Decode[116] id:15 width:1280 height:720 fps:3 bitrate:64kbps10:01:34 DEBUG CustomVideoDecoder::Decode[116] id:15 width:1280 height:720 fps:3 bitrate:70kbps10:01:37 DEBUG AudioReceiver::OnData[35] uid:9173 audio, bits:1.
2021-09-02 20:06:39
457
原创 webrtc码率问题实际测试研究
ios端连接webrtc服务端,走webrtc pc连接,实际测试的码率数值与设定值有一定差距,总结测试经验,发现有两个原因:1,实际网络带宽限制2,编码方式,对于264,容易达到设定的码率值,但是对于265,往往只能达到设定值得一半左右,本文引导研究解决这个问题。...
2021-09-02 20:06:27
381
原创 webrtc支持H264编码和解码
相关代码:/root/Projects/webrtc-checkout/src/pc/media_session.cc/root/Projects/webrtc-checkout/src/media/engine/internal_encoder_factory.cc/root/Projects/webrtc-checkout/src/pc/sdp_offer_answer.cc
2021-09-02 20:06:16
4723
原创 webrtc支持265软解码
进入目录:$(webrtc-checkout)/src/third_party/ffmpeg/chromium/scripts,修改build_ffmpeg.py:configure_flags['Common'].extend([添加选项到后面:'--enable-decoder=h264,hevc', '--enable-protocol=file', '--enable-demuxer=mov', '--enable-bsf=h264_mp4.
2021-09-02 20:05:59
901
原创 go语言带位置描述的字符串格式化
项目中执行很复杂的sql语句,底层封装的太死,不确定到底最终执行的sql语句字符串长啥样,虽然手工替换也能够得到,但毕竟效率太低,特别是当参数很多的时候,几乎是bu'ken
2021-09-02 20:05:20
225
原创 EVP_DecryptFinal_ex:bad decrypt
启动wss服务,发现报错:_tls_common.js:156 c.context.setKey(key, passphrase); ^Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt经过研究
2021-06-07 17:34:34
7042
原创 编译webrtc android端的ffmpeg问题
进入third_party/ffmpeg/chromium/scripts目录,执行:./build_ffmpeg.py android arm64编译报错,检查config.log,具体报错内容如下:clang --sysroot=/root/Projects/webrtc-checkout/src/third_party/android_ndk/platforms/android-21/arch-arm64 -I/root/Projects/webrtc-checkout/src/thi
2021-04-06 00:45:01
1322
原创 ssh错误:sign_and_send_pubkey: signing failed for RSA “/root/.ssh/id_rsa“ from agent: agent refused ope
今天,同步代码,出现如下错误:root@rtc$git pullsign_and_send_pubkey: signing failed for RSA "/root/.ssh/id_rsa" from agent: agent refused operationgit@192.168.60.168's password: 对比windows环境下的git pull正常执行,想到可能是ssh文件的问题,二进制对比发现两者完全一致,显然不是这个问题。分析,应该是ssh环境变动...
2020-10-14 11:41:55
4553
1
原创 owt-server 数据流程
1,/root/Projects/owt-server/dist/management_api/rpc/rpc.js//Create the queue for send messages clientQueue = connection.queue('', function (q) { log.info('ClientQueue ' + q.name + ' is open'+',clientQueue.name:'+cli...
2020-10-13 10:31:01
991
1
原创 OWT-Server 编译运行
1,编译源码,发现v8::Handle未声明的错误,经过多方调查,发现是node的版本的问题,可以用node 10.16.0,这个坑里面爬了一整天,也考虑过直接复制 ~/.cache/node-gyp/下面的正确版本号目录里面的内容,不料安装好指定版本的node之后,自动创建了这个目录,真是神奇。 2,usrsctp编译遇到错误,经过检查,是编译选项太拉风的原因,修改/root/Projects/owt-server/build/libdeps/usrsctp/configure 1214...
2020-10-12 12:07:59
678
原创 postgresql 之row_to_json
PostgreSQL 9.2新增加了一个新的特性--JSON支持,具体包含一个JSON数据类型和两个json函数,这些techniques可以从数据库直接获取json格式的数据How Tovkott_livecde=# select * from live_area_info ; area_id | area_name | description ---------+------------+----------------------...
2020-10-07 22:09:30
4761
1
原创 整理高能linux shell命令
1,在当前目录下排除node_modules在非目录项中查找join字符串:find . -path ./node_modules -prune -o -not -type d -print | xargs grep --color=auto -wFRn "join"
2020-07-09 11:24:44
139
原创 WebRTC编译(VS2017)
写一篇文章记录一下WebRTC的VS2017编译,这里记录的是网上没有搜索到的信息,作为对实践编译过程的补充修改vs的并行编译工作数量为1因为webrtc多达900多个项目,彼此之间存在复杂的依赖关系,并行编译会破坏这种依赖关系,可能是ninja构建系统的依赖关系设计并不完全兼容VS2017的工作方式吧选择工具>选项打开选项页,再选择环境>项目和解决方案->生成并运行,设...
2020-03-31 07:55:13
939
1
原创 扩展Vmware的虚拟Linux系统磁盘
虚拟机Vmware装上一个Linux系统之后,刚开始比较吝啬,分配的磁盘空间太小,没过多久磁盘空间告急,这时怎么解决磁盘空间不足的问题?最简单的做法是重新安装一个虚拟机系统,可问题是重新配置好至自己习惯的状态,要安装接近无数的软件,不是不可能,太繁琐,最可行的做法是手工动态扩展磁盘分区。 首先要做的事情是在虚拟机关机的状态下,先设定好扩展后的总的文件大小:
2016-05-28 20:32:03
494
1
原创 Linux下进程信息的深入分析
这里我们主要介绍进程的状态,进程的状态可以通过/proc/PID/status来查看,也可以通过/proc/PID/stat来查看。如果说到工具大家用的最多的ps也可以看到进程的信息。这里我们通过/proc/PID/status来分析进程的信息。在2.6.18之后的内核,多了capibilty/cpusets等信息. 查看进程状态信息如下:more stat
2016-05-14 01:54:17
1287
转载 借助backtrace和demangle实现异常类Exception
C++的异常类是没有栈痕迹的,如果需要获取栈痕迹,需要使用以下函数:#include int backtrace(void **buffer, int size);char **backtrace_symbols(void *const *buffer, int size);void backtrace_symbols_fd(void *const *buffer, int s
2016-05-05 11:43:08
416
转载 linux 查看进程占用内存
1.toptop -b -n 1 |awk '{print "cpu:"$9"%","mem:"$10"%"}'cpu:average:% mem:0.06,%cpu:stopped,% mem:0%cpu:id,% mem:5.1%cpu:38984% mem:buffers%cpu:592484% mem:cached%cpu:% mem:%cpu:%CPU%
2016-05-05 11:35:42
455
原创 深入探讨:unix多进程编程之wait()与waitpid()函数
本篇文章是对unix多进程编程中的wait函数与waitpid函数的使用进行了详细的分析介绍,需要的朋友参考下!Wait函数和waipid函数当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个异步事件,所以这种信号也是内核系那个父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。
2016-04-06 01:58:51
507
转载 recv send 阻塞和非阻塞
int send( SOCKET s, const char FAR *buf, int len, int flags );不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明一个存放应用程序要发送数据
2016-03-28 19:19:08
375
转载 非阻塞connect的实现
步骤1: 设置非阻塞,启动连接实现非阻塞 connect ,首先把 sockfd 设置成非阻塞的。这样调用connect 可以立刻返回,根据返回值和 errno 处理三种情况:(1) 如果返回 0,表示 connect 成功,返回成功。(2) 如果返回值小于 0, 并且errno 为 EINPROGRESS, 表示连接 建立已经启动但是尚未完成。这是期望的结果,
2016-03-28 19:13:27
558
原创 shell脚本中echo显示内容带颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1、字背景颜色和文字
2016-03-06 02:53:46
365
原创 Darwin Streaming Server 6.0.3 之一 : 编译安装
一,关于 Darwin Streaming Server Darwin Streaming Server简称DSS。DSS是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。并且DSS是一个开放源代码的,基于标准的流媒体服务器,可以运行在Windows NT和Windows 20
2016-03-05 01:09:50
1154
转载 Linux 系统性能监控命令详解
Linux 系统性能监控命令详解CPUMEMORYIONETWORKLINUX进程内存占用查看方法系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(page-in IO)会用完内存队列;->大量的网络流量会造成CPU的过载;->CPU的高使用率可能正在处理空闲内存队列;->大量的磁盘读写会消耗CPU和IO资源。
2016-02-29 20:15:18
473
转载 VLC源码分析总结
1. 概述VLC属于Video LAN开源项目组织中的一款全开源的流媒体服务器和多媒体播放器。作为流媒体服务器,VLC跨平台,支持多操作系统和计算机体系结构;作为多媒体播放器,VLC可以播放多种格式的媒体文件。主要包括有:WMV、ASF、MPG、MP、AVI、H.264等多种常见媒体格式。VLC采用全模块化结构,在系统内部,通过动态的载入所需的模块,放入一个module_bank的结构体中
2016-02-23 16:25:44
481
原创 Fedora 23 KDE定制版安装后需要做的几件事情
个人工作这么多年,用了那么多版本的linux,还是Fedora KDE定制版用的最顺手,可能是因为KDE桌面环境与windows比较相似吧,但刚刚安装完成的Fedora KDE定制版还是要做一些工作方便个人使用: 1,右键菜单里添加终端打开命令:yum install nautilus-open-terminal
2016-02-20 21:17:07
1845
原创 工作中用到的FFmpeg命令
-f dshow -r 25 -s 1280*720 -i video="SA7160 PCI, Analog 01 Capture" -f dshow -ar 48000 -i audio="SA7160 PCI, Analog 01 WaveIn" -pix_fmt yuv420p -subq 4 -s 960*544 -profile:v high -x264opts bitrate=150
2016-02-17 20:54:18
1043
原创 JNIEnv和Dalvik的JavaVM的关系
(1)JNIEnv*内部包含一个Pointer,Pointer指向Dalvik的Java VM对象的Function Table,JNIEnv*关于程序执行环境的众多函数正是来源于Dalvik虚拟机;(2)Android中每当一个Java线程第一次要调用本地C/C++代码时,Dalvik虚拟机实例会为该Java线程产生一个JNIEnv*指针;(3)Java每条线程在和C/C++相互调用时,
2016-02-17 20:51:53
1242
原创 Android编译系统
一、Android编译步骤:二、初始化编译环境--source build/envsetup.sh在build/envsetup.sh中主要完成了三件事。添加编译目标的代码如下:for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/*/vendorsetup.sh device/*/*/vendorsetup.sh 2
2016-02-17 20:51:10
358
原创 Android Binder机制
7.3.1.1,binder通信概述 binder通信是一种client-server的通信结构, 1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用; 2.实际上,代理接口中定义的方法与server中定义的方法是一一对应的; 3.client调用某个代理接口中的方法时,代理接口的方法会将client传递的参数打包
2016-02-17 20:40:23
372
原创 最全的Android源码目录结构详解
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts
2016-02-17 20:38:21
337
原创 单线程模型中Message、Handler、Message Queue、Looper之间的关系
单线程模型中Message、Handler、Message Queue、Looper之间的关系简单的说,Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,再用Handler进行Message的分发和处理.Message Queue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程
2016-02-17 20:37:35
588
原创 android的m、mm、mmm编译命令的使用
android源码目录下的build/envsetup.sh文件,描述编译的命令- m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory. - mmm: Builds all of the modules in the supp
2016-02-17 20:36:45
667
原创 adb操作命令详解及大全
adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
2016-02-17 20:35:56
442
原创 ffmpeg(最新版2.8.5 )在Fedora下使用NDK编译——并在android工程下测试使用
环境准备:Ubuntu12.04 TLSandroid-ndk-r9d-linux-x86_64.tar.bz2ffmpeg2.2---------------------------------------------------------第一步:下载1.配置ubuntu12.04 TLS 系统环境。2.下载ndk版本为 r9d。
2016-02-17 20:33:30
473
原创 VLC-Android编译与运行
文章开头,不得不膜拜一下老外们的奉献分享精神!开发移动平台播放器,VLC-android是一个非常值得参考的开源项目,该文记录下实际的VLC-Android的编译运行过程! 该项目的下载网址是:http://mirrors.ustc.edu.cn/videolan-ftp/vlc-android/1.7.5/VLC-Android-1.7.5.tar.gz, 以下的过程记录基于在
2016-02-17 17:35:48
8002
原创 有用的shell命令集锦
1,grep -o '^r[0-9]*.*' $ANDROID_NDK/RELEASE.TXT用于在指定的文件$ANDROID_NDK/RELEASE.TXT下查找正则表达式'^r[0-9]*.*' 匹配内容,实际上是提取ndk的版本号,$ANDROID_NDK/RELEASE.TXT内容如下:r10b则提取的内容就是r10b。
2016-02-17 16:22:05
354
原创 ffplay两年后重新阅读
ffplay控制音视频同步的宏定义:/* no AV sync correction is done if below the minimum AV sync threshold */#define AV_SYNC_THRESHOLD_MIN 0.04/* AV sync correction is done if above the maximum AV sync thres
2015-03-04 20:23:38
1789
MPlayer的windows平台编译与phonon mplayer后端配置.doc
2013-03-11
Network Programming with Perl 源代码
2011-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人