自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TopsLuo的专栏

行千里路,读万卷书!

  • 博客(63)
  • 资源 (7)
  • 收藏
  • 关注

原创 ijkplayer支持播放rtsp、jpeg、gif

ijkplayer播放器支持rtsp、mpjeg播放

2022-06-18 13:45:06 2694 9

原创 ubuntu上编译vlc-android

编译环境操作系统:Ubuntu 18.04.4 LTSvlc-android版本:3.3.0 RC1 version(ae229f1ea380cd8ebc74794c9a433dd5bd5a4016)android-sdk版本:未知(安装过android-studio)android-ndk版本:r21b配置环境变量export ANDROID_SDK=/home/topsluo/Android/Sdkexport ANDROID_NDK=/home/topsluo/android-n..

2020-08-04 11:40:15 644

转载 Git 打补丁----基于源码改动生成 patch 包的方法

Git 提供了两种补丁方案,一是用git diff生成的UNIX标准补丁.diff文件,二是git format-patch生成的Git专用.patch 文件。.diff文件只是记录文件改变的内容,不带有commit记录信息,多个commit可以合并成一个diff文件。.patch文件带有记录文件改变的内容,也带有commit记录信息,每个commit对应一个patch文件。git diff 生成补丁方法:git diff 本次提交前一次commit的序列号 本次提交commit的序列号 &gt

2020-05-13 10:58:14 706

原创 androidnativeapi在AndroidStudio3.1.4下面编译的方法

如何编译webrtc请参考官网。步骤很简单,就是下载比较麻烦,而且文件比较多也比较大,webrtc_android一共有20G左右吧。BTW,由于webrtc项目才开始接触android,之前一直是在做后台C/C++相关的开发。我参考的是android编译方法,我的本地工作环境:OS:ubuntu 16.04

2020-04-21 10:55:33 1247 5

原创 turnserver开机启动配置

创建turnserver.service文件创建配置文件,并把如下内容copy到配置文件中[Unit]Description=turnserver for webrtcAfter=network.target[Service]Type=forkingUser=testerGroup=testerExecStart=/home/tester/coturn/coturn/bin...

2020-04-15 18:16:41 1129 1

原创 如何使用OWTServer

架构图编译及安装 下载源码git clone https://github.com/open-webrtc-toolkit/owt-server.git 安装依赖 cd owt-server && ./script/installDepsUnattended.sh 编译native模块./script/pack.js –t mcu –ch...

2020-01-17 16:55:25 4011 6

转载 webrtc中RTCP中专业术语笔记

本文摘抄于:https://blog.csdn.net/DittyChen/article/details/78065974在实时音视频应用场合,考虑低延迟问题一般都使用RTP over UDP进行媒体数据的传输,因此对于丢包、延迟、流畅性的考虑,发送端必须了解发送出去的流媒体数据到达对端的统计信息,RTP控制协议RTCP,就是用于监控服务质量和传达关于在一个正在进行的会议中的参与者的信息,包括...

2019-12-12 17:38:54 636

原创 licode pre-v7.3开启屏幕共享功能

由于工作需要,所以开始研究licode的共享屏幕功能,但在简单修改代码后,并没有成功开启屏幕共享功能。于是潜心Google+度娘,虽然最终结果只在firefox 69版本中开启了屏幕共享功能(chrome 77版本没能成功),但至少验证licode的屏幕共享是OK的。Mac平台上具体步骤如下:编译及安装licode下载licode pre-v7.3源码并解码wget https://gi...

2019-10-24 14:32:36 650

转载 Licode Simulcast

转载自:https://www.jianshu.com/p/aabda9369224Publisher端创建stream的时候config参数添加simulcastroom.publish(localStream, {simulcast: {numSpatialLayers: 2}});numSpatialLayers 是Publisher发送的spatial layers的最大数目前we...

2019-09-19 15:25:28 606

原创 webrtc android native如何开启硬件加速

在android平台中开发webrtc相关项目,可以直接使用webrtc提供的java SDK。当然,也可以选择native的方式来实现。后者相对前者来说,不容易被反编译。所以我们选择的后者的开发方式。要实现硬件加速后,在我脑海中出现了两种方案:方案一. 通过ffmpeg来实现硬件加速方案二. 通过webrtc SDK来实现硬件加速方案一调研:如果想要实现硬件加速,理论上来说,直接开启f...

2019-09-05 16:56:48 1139 1

原创 手动编译android webrtc并开启h.264编解码功能

之前写过一篇“webrtc开启h.264编码功能”的博客,不过并不能成功开启h.264的解码,编码H.264是OK的,但一直没有及时纠正错误,因为当时也没找到简单直接的方法,而是通过手动修改ffmpeg目录下的BUILD.gn及其它脚本 来实现开启h.264解码的功能,相对来说太过复杂,偶然间在webrtc的讨论组里看到一篇文章,算是找到了简单的方法了,自己也按照相关的步骤执行了一遍,确实有效,所...

2019-09-05 16:22:26 1716 8

原创 编译Licode报错:ifndef header guard has wrong style

编译licode git上的master的时候,一切都很顺利,但下载release中的压缩包,解压并编译,当编译到erizoAPI的时候却报了很多相同的错误,都是说头文件的风格不对,错误如下:MediaStream.h:2: #ifndef header guard has wrong style, please use: _HOME_TOPSLUO_WORKSPACE_TEST_LICODE...

2019-08-15 18:04:37 1234

转载 npm 安装卸载模块

npm 安装卸载模块- npm安装模块npm install xxx利用 npm 安装xxx模块到当前命令行所在目录npm install -g xxx利用npm安装全局模块xxx- 本地安装时将模块写入package.json中npm install xxx 安装但不写入package.jsonnpm install xxx –save 安装并写...

2019-07-06 09:49:24 2145

原创 ununbu下编译webrtc时报AttributeError: 'JNIFromJavaP' object has no attribute 'fully_qualified_class'错解决办法

出现这种错误,一般是由于java的一些环境配置不兼容。执行如下命令,都会出现默认的一些值,echo $JAVA_HOMEecho $CLASSPATH此时在当前终端输入以下命令(只对当前终端有效,所以不会影响你系统中的其它程序的运行):export JAVA_HOME=export CLASSPATH=...

2019-03-04 15:09:55 667

原创 webrtc开启h.264编解码功能

https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/YoMQmOBPZn8自己编译的webrtc库发现无法正常使用h.264编解码器,所以猜测可能是在编译的过程中默认没有开启h.264功能。首先,我们应该查询一下gn编译的时候是否可以选择h.264。查看gn编译的可选参数命令行为:#查看帮助gn h...

2019-03-04 14:59:21 2668 4

原创 java生成签名的方法

在jni中需要回调java层的方法,如何才能做到精确查找java的方法?一个是函数名称,另外一个就是函数的签名了。但如何生成函数的签名?通过javap工具: javap -s -p Session.class以我的linux平台下的androidstudio为例:在AS下面,选择Terminal对话框,查找*.class目录,命令如下:find ./ -name "*.class"进行...

2019-02-22 14:30:21 2852

转载 Facebook网络模拟测试工具ATC使用

转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html实际步骤本人并没际操作过。因为考虑再过一段时间马上就需要用到了,所以转载过来,当做自己的备忘录正文Facebook在其工程博客(原文 )上宣布开源移动网络测试工具Augmented Traffic Control(ATC),我迅速试用了一番,非常不错,对手游或者...

2019-02-19 17:35:57 802

原创 libwebrtc与openCV库的冲突:-fno-rtti与-frtti

rtti:RTTI(Run-Time Type Identification),通过运行时类型识别能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型(引用百度解释)。在项目中有用到webrtc的库和OpenCV库,两个开源项目的库均为自己编译。在导入到项目中编译时,如果在CMakeLists.txt中配置了-fno-rtti时,OpenCV库无法正常链接。如果换成-frtti参...

2019-01-18 17:46:04 3933

原创 webrtc android版本的编译及release版本的获取

本文主要介绍如何在ubuntu16.0.4平台下编译android版本的webrtc。对于刚开始使用webrtc的人来说,本篇博客可能对你有所帮助!对于健忘的我来说,也算是一种学习笔记,当有需要的时候,回头过来翻看一下也是极好的。好了,进入正题:注意:编译前请确认你已经翻墙了。下载google提供的一系列工具,即工具包(必须)git clone https://chromium.goog...

2019-01-18 17:33:10 1971

转载 -fno-rtti -fno-exceptions

-fno-rtti 禁用运行时类型信息-fno-exceptions 禁用异常机制一般只有对程序运行效率及资源占用比较看重的场合才会使用, 如果要做这两个的话最好连libstdc++和其他所有的的c++库都用这两个参数重新编译一遍, 否则光是你自己的程序禁用了这两个特性, 而别的库依然开着, 效果就大打折扣了转载自:https://blog.csdn.net/fyfcauc/article...

2019-01-14 14:57:42 2257

转载 kDefault, kPlanB, kUnifiedPlan

// Configure the SDP semantics used by this PeerConnection. Note that the// WebRTC 1.0 specification requires kUnifiedPlan semantics. The// RtpTransceiver API is only available with kUnifiedPlan sem...

2018-12-26 13:50:35 370

转载 Ubuntu Tty (字符终端) 显示中文,和字体大小设置

转载自:https://blog.csdn.net/u010159842/article/details/54340996Tty通过 修改默认的中文编码字符,和安装zhcon都无法显示中文。可安装fbterm来显示中文命令sudoapt-get install fbterm安装即可进入Tty(Ctrl+Alt+F1) 运行sudofbterm输入登录密码好了ls看...

2018-11-15 11:33:10 2471

转载 C++实现base64编解码

将昨天的php代码改造成C++/*base_64.h文件*/#ifndef BASE_64_H#define BASE_64_H/** * Base64 编码/解码 * @author liruixing */class Base64{private: std::string _base64_table; static const char base64_pad ...

2018-10-17 11:20:37 1220 1

转载 c++ 接口和抽象类

其实对抽象类与接口的区别一直是搞不太清楚,最近正在学习《设计模式》,期间用到了很多c++多态的知识。这是才恍然发现,是应该整理下这方面的知识了。但在翻阅书本、上网查阅资料之际,发现有篇文章总结的不错。于是,转载(博主勿怪)并稍作修改如下: 抽象类:抽象类是特殊的类,只是不能被实例化(将定义了一个或多个纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类...

2018-07-23 16:10:56 967

转载 Linux下忽略信号SIGPIPE的方法

转载自:https://blog.csdn.net/woxiaozhi/article/details/40624033#commentBox 最近为测试自己写的服务器,临时写了一个客户端,总是发现客户端收到SIGPIPE的信号,然后进程退出。为了客户端进程收到SIGPIPE不退出,我打算忽略该信号,下面是我用过的方法:(1)间接忽略static void SignalHandler...

2018-06-23 09:32:57 3724 1

转载 SIGPIPE信号--解决Linux socket中接收端退出导致发送端send退出问题

在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的”四次握手”关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调...

2018-06-14 15:22:42 1737 1

原创 Onvif框架的搭建

在搭建Onvif框架之前,先简单了解一些概念及工具:概念WSDLWSDL是web service description language(web service描述语言),是一个用来描述web服务和说明如何与web服务通信的xml语言,为用户提供详细的接口说明。SOAPSOAP是simple object access protocol(简单对象访问协议)的缩写,是基于XML...

2018-05-21 09:50:28 924

原创 利用ffmpeg构造静音帧

在项目中处理音频,有时候会出现音频源没数据,但又不能中断输入音频数据给编码器,否则很有可能就出现声音与画面不同步的严重问题。所以尝试了几种构造静音帧的方法,最终找到了ffmpeg上面,废话也不多话,直接上一段代码:AVFrame *alloc_silence_frame(int channels, int samplerate, int format){ AVFrame *frame...

2018-05-04 09:06:50 5091 5

原创 avcodec_copy_context函数引发的问题

在FFmpeg库中,有一个旧的API函数:avcodec_copy_context,主要的功能就是编码参数上下文的拷贝,函数原型如下:int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src);

2018-04-28 09:58:07 2979

原创 ffmpeg中新的BitStreamFilter(h264_mp4toannexb、aac_adtstoasc等)的使用方法

FFMPEG转码器在封装成FLV或者MP4的时候,会用到h264_mp4toannexb、aac_adtstoasc这两个filter。老版本的bsf使用需要特别注意,一个不小心,就造成的内存泄漏,不容易察觉。 在阅读ffmpeg.3.2.2的代码过程中,发现ffmpeg使用bsf用了新的方法,所以尝试使用并总结一下。初始化并申请空间AVBSFContext *bsf_ctx;AV...

2018-04-25 11:04:57 7212 1

转载 Linux中buff/cache内存占用过高解决办法

转自:http://www.idcyunwei.org/post/162.html 如何回收cache? Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。一般情况下,这个操作中主要的内存释放都来自于对buffer/cache的释放。尤其是被使用更多的cache空间。既然它主要用来做缓存,只是在内存够用的时候加快进程对文件的读写速度,那么在内存压力较...

2018-04-13 18:25:55 10191

原创 ffmpeg命令行接收rtmp的问题

在使用ffmpeg的命令行接收rtmp流的过程中发现无法正常接收,出现如下问题:topsluo@localhost:~/workspace/ffmpeg-3.2.2$ ./ffmpeg -live 1 -i rtmp://192.168.10.230:1935/live/test test.ts ffmpeg version 3.2.2 Copyright (c) 2000-2016...

2018-04-03 17:40:46 4770 2

原创 vim使用了spf13插件集合后经常会卡住

1. 问题描述 在网上看到sfp13的强大功能后,迫不及待的安装了它,在使用过程中也体会到了它的强大之处,不过有一点很是让人头疼,那就是经常会卡住,一卡就是30秒以上。比如如下代码的操作(反复操作,每次都会卡):...for(int i = 0; i < nb_streams; i++){ AVStream *stream = ifmt_ctx->//(此处输...

2018-04-02 17:21:49 1423

原创 Linux下面无法使用常用的命令

1. 问题在linux服务器上新增加一个用户,如下: useradd -m test 创建好之后发现,linux下面好多常用命令均无法使用,比如:ls,history,tab也无法补齐。与正常的用户环境相比,发现 echo $BASH输出的结果不一样,正常的用户环境下输出的是shell,而异常的用户环境下输出的是sh。2. 解决办法打开/etc/passwd,在异常的用户后面...

2018-03-19 17:30:06 1242

原创 spf13高亮显示问题

spf13高亮显示问题问题描述在编辑已有的1.cpp文件的时候,发现该文件中的语法无高亮显示。如果复制成另外一个文件(比如cp 1.cpp 2.cpp),此时打开2.cpp的时候,语法的高亮显示正常。问题补充,之前是由于存在1.cpp.swap,所以在打开1.cpp的时候,我选择了Del,之后就出现了上述问题!问题猜测由于复制成其它文件,语法高亮正常,说明不是文件的问题...

2018-03-03 17:08:07 1271

原创 ffmpeg输出x264的CBR流或者文件

CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。 这个算法也算是码率控制最难的算法了,因为无法确定何时有motion发生,假设在码率统计窗口的最后一帧发生motion,就会导致该帧size变大,从而导致统计的码率大

2018-01-29 16:13:14 4329

转载 ubuntu服务器上卸载及安装mysql命令

卸载Mysql命令apt-get remove –purge mysql-server mysql-client mysql-commonsudo apt-get remove –purge mysql* sudo apt-get autoremove mysql sudo apt-get autoclean mysqlsudo rm -rf /etc/mysql/ sudo rm -rf

2017-11-30 14:49:39 431

转载 c++11实现写优先的读写锁

文章转自:http://blog.csdn.net/mymodian9612/article/details/52794980 先直接贴出代码:#ifndef __WRITE_FIRST_RW_LOCK_H#define __WRITE_FIRST_RW_LOCK_H#include <mutex>#include <condition_variable>class WfirstRWLock

2017-11-14 11:31:44 2434

转载 JsonCpp如何判断是否有某个KEY

文章出自:http://blog.csdn.net/yannanxiu/article/details/52415640 JsonCpp如何判断是否有某个KEY,使用json[“key”]和isXXX的函数即可。 如果json中没有key键,则会创建一个空成员或者返回一个空成员。// Access an object value by name, create a null member if

2017-10-18 18:09:51 2580

原创 精度丢失引发的错误--笔记

在处理音频及视频时间戳的过程中,发现音频pts跟正常的预期值偏差会随着时间越来越大(小于预期值),而视频的pts值跟预期值相等,最终导致声音与画面不同步。排查很久,最终找到问题所在,原因在于生成音频pts的过程中存在精度误差(计算pts的公式:packet_num * ((1000 * 1024) / 44100 )),下面用代码说话:#include <stdio.h>int main(){

2017-09-22 15:50:37 551

x264参数整理

本文档其实在很早的时候就已经整理好了,期间公司都换过好几家,但这份文档一真都保存在工作的电脑中,因为经常会用到它。这份文档比较初级,就是整理了x264(版本相对来说可能比较老,因为该文档是2013年左右整理的)编码器中基本所有参数,并做了简单的中文解释,希望对刚接触x264编码器的人有所帮助

2017-09-28

python2.7GetWwather

通过已经生成的城市ID(如何获取城市ID的代码也包含在里面),来查询对应城市的天气

2016-08-18

h265播放器

该播放器可以播放通过HM源码转出来的h265,麻雀虽小,用用还是没有问题的

2013-12-03

YUV420转YUV422

一个简单的例子,将YUV420转换成YUV422

2012-12-14

AAC分析代码

个人写的一个简单的AAC分析工具,希望可以帮助到大家

2012-03-16

ts流分析工具

很不错的一个TS流分析工具,可以分析出PAT、PMT中的所有信息,个人觉得很全面,比elecard的分析工具要强大

2012-03-16

空空如也

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

TA关注的人

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