<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[blobliu的博客]]></title><description><![CDATA[流媒体相关开发为主]]></description><link>https://blog.youkuaiyun.com/blobliu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; blobliu]]></copyright><item><title><![CDATA[dlopen: cannot load any more object with static TLS问题解决]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/119145108</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/119145108</guid><author>blobliu</author><pubDate>Tue, 27 Jul 2021 16:12:38 +0800</pubDate><description><![CDATA[项目在windows操作系统正常运行，但是在linux操作系统运行报错dlopen: cannot load any more object with static TLS，报错图如下：



错误提示字面意思无法通过线程局部存储加载更多的对象。

错误原因：主要出现在python import导入库的顺序问题，可能出现在import各种python库时，由于代码中写的import顺序导致报这个错。

如我的项目中是在import paddle时报的错，但是修改代码中import的顺序时问题无法解决，这个时]]></description><category></category></item><item><title><![CDATA[Spring工具类调用Service,Dao对象方法]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/97139907</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/97139907</guid><author>blobliu</author><pubDate>Wed, 24 Jul 2019 17:53:44 +0800</pubDate><description><![CDATA[//再次更新~

最近又久违的接手了一些Java web项目开发，项目使用经典SSM框架；在写好相关controller之后，需要写一个工具类来调用spring bean对象Service,Dao。以实现相关页面功能。

Spring中工具类调用Service，Dao对象方法可以分为两种：

将工具类注入spring容器管理
	工具类不注入spring容器管理，而实现ApplicationCont...]]></description><category></category></item><item><title><![CDATA[LIVE555流媒体服务器MKV文件点播分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/86534696</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/86534696</guid><author>blobliu</author><pubDate>Fri, 18 Jan 2019 10:11:51 +0800</pubDate><description><![CDATA[LIVE555MediaServer是一个RTSP流媒体服务器简称LIVE555，作为流媒体领域的一个优秀开源项目，成为众多流媒体工作人员的入门学习项目，今天主要来分析下这个优秀开源项目的点播系统，LIVE555不支持MP4文件的点播，主要支持ts,h264，mkv文件的点播。今天以mkv文件的点播作为分析对象。

 ...]]></description><category></category></item><item><title><![CDATA[2019新年Flag]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/85796907</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/85796907</guid><author>blobliu</author><pubDate>Mon, 07 Jan 2019 09:26:08 +0800</pubDate><description><![CDATA[2019已经来到，在毕业后的第一年必将是我非常重要的一年，Flag先在此立好。

拭目以待2019！]]></description><category></category></item><item><title><![CDATA[EasyDarwin加入SIPServer，实现国标摄像头接入]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/84106779</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/84106779</guid><author>blobliu</author><pubDate>Thu, 15 Nov 2018 16:39:02 +0800</pubDate><description><![CDATA[在长期的EasyDarwin研究之后，发现EasyDarwin缺少国标模块的功能，决定给EasyDarwin添加SIPServer，实现国标摄像头的接入。

基本构思如下图：

]]></description><category></category></item><item><title><![CDATA[EasyDarwin添加自己的模块EasySIPModule]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/83542810</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/83542810</guid><author>blobliu</author><pubDate>Tue, 30 Oct 2018 17:15:28 +0800</pubDate><description><![CDATA[在一段时间的EasyDarwin代码研究之后，开始开发自己的功能模块，首先便是在EasyDarwin中添加一个新的模块。在此添加EasySIPModule作为讲解，在网上找到多片相关博文介绍，包括EasyDarwin开源社区的博主文章。都有详细介绍，但是都缺少一些其他步骤，在此主要是自己尝试后整理所有步骤。

添加代码

在EasyDarwin/APIModule/下新建EasySIPModule...]]></description><category></category></item><item><title><![CDATA[EasyDarwin HTTP后台管理分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/83378485</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/83378485</guid><author>blobliu</author><pubDate>Thu, 25 Oct 2018 16:49:47 +0800</pubDate><description><![CDATA[EasyDarwin配置有HTTP后台管理，在EasyDarwin的配置文件easydarwin.xml定义有后端管理的端口8080。



即通过HTTP访问8080端口可以进行后台管理，后台管理主要有三种：

获取HLS模块信息(通过http://ip:8080/api/easyhlsmodule)
	获取HLS会话信息(通过http://ip:8080/api/gethlssessions)...]]></description><category></category></item><item><title><![CDATA[EasyDarwin 客户端播放转发流代码分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/83177764</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/83177764</guid><author>blobliu</author><pubDate>Fri, 19 Oct 2018 13:22:06 +0800</pubDate><description><![CDATA[在之前博文https://blog.youkuaiyun.com/blobliu/article/details/83012338中分析了转发流及相关类的分析，便会想到当我们播放转发流的时候EasyDarwin是怎么工作的。本次博文便来分析客户端播放转发流代码。

如前面提到的博文讲的ReflectorSocket是接收推流端数据的Socket。ReflectorSocket继承自UDPSocket,同时继承...]]></description><category></category></item><item><title><![CDATA[EasyDarwin ReflectorStream及相关类分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/83012338</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/83012338</guid><author>blobliu</author><pubDate>Thu, 11 Oct 2018 16:01:21 +0800</pubDate><description><![CDATA[EasyDarwin最主要的模块便是转发模块，转发模块完成从端口接收RTP数据并根据播放需求发送到播放端。

最典型的模式便是通过ffmpeg推流到EasyDarwin端口，然后vlc客户端请求播放，EasyDarwin将收到的RTP数据再发送给vlc。

本次博文主要便是分析转发流ReflectorStream及相关类

主要涉及的相关类如下

ReflectorSession
	Reflect...]]></description><category></category></item><item><title><![CDATA[EasyDarwin RTSPRequest请求相关代码分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/82869549</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/82869549</guid><author>blobliu</author><pubDate>Thu, 27 Sep 2018 21:01:37 +0800</pubDate><description><![CDATA[EasyDarwin RTSPRequest请求的相关代码分析

在之前的博文中提到了RTSPSession中建立RTSPRequest和RTPSession以完成进一步的视频流构建，本文主要分钟其中RTSPRequest请求的相关代码。

RTSPRequest作为RTSP请求保存视频流请求信息如请求方法，开始时间，结束时间，播放速度，传输方式等。

RTSPRequest的构建是在RTSPSe...]]></description><category></category></item><item><title><![CDATA[EasyDarwin流媒体服务器启动函数StartServer代码分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/82663180</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/82663180</guid><author>blobliu</author><pubDate>Wed, 12 Sep 2018 17:30:47 +0800</pubDate><description><![CDATA[在前面博客中分析EasyDarwin字典类QTSS_Dictionary时了解到相关QTSS_DictionaryMap，QTSSAttrInfoDict等属性内容，其初始化分配内存是在服务器启动的时候。

正好回过来分析服务器的初始化启动函数QTSS_ServerState StartServer(...)相关代码。

StartServer主要完成如下几点

初始化工具类
	初始化网络模型
	...]]></description><category></category></item><item><title><![CDATA[EasyDarwin字典类QTSSDictionary相关分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/82620478</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/82620478</guid><author>blobliu</author><pubDate>Tue, 11 Sep 2018 13:45:41 +0800</pubDate><description><![CDATA[最近在分析EasyDarwin中RTSPSession的建立及初始化，当每一个推流请求接收时，EasyDarwin就会新建一个RTSPSession，在RTSPSession中有RTSPRequest* fRequest和RTPSession* fRTPSession两个属性



fRequest对应当前的RTSP请求，fRTPSession对应RTP会话用于创建RTPStream

二者的初始...]]></description><category></category></item><item><title><![CDATA[EasyDarwin 转发模块QTSSReflectorModule:AddRTPStream添加转发流代码分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/82592689</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/82592689</guid><author>blobliu</author><pubDate>Mon, 10 Sep 2018 17:59:11 +0800</pubDate><description><![CDATA[在分析EasyDarwin转发模块QTSSReflectorModule中，我们找到了转发流的添加函数AddRTPStream。此函数完成一路转发流的添加至转发会话并完成相关设置。

AddRTPStream的参数有

ReflectorSession* theSession
	QTSS_StandardRTSP_Params* inParams
	QTSS_RTPStreamObject *ne...]]></description><category></category></item><item><title><![CDATA[EasyDarwin视频点播系统分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/82463458</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/82463458</guid><author>blobliu</author><pubDate>Thu, 06 Sep 2018 16:27:50 +0800</pubDate><description><![CDATA[在一定的EasyDarwin版本中，服务器是支持mp4文件点播的。

mp4文件必须先经过RTSP/RTP Hint处理，可以使用MP4Box等工具进行Hint



Demo.mp4点播效果]]></description><category></category></item><item><title><![CDATA[EasyDarwin使用udp方式推流实现摄像头直播代码流程分析]]></title><link>https://blog.youkuaiyun.com/blobliu/article/details/82052743</link><guid>https://blog.youkuaiyun.com/blobliu/article/details/82052743</guid><author>blobliu</author><pubDate>Sat, 25 Aug 2018 16:43:05 +0800</pubDate><description><![CDATA[EasydDarwin作为当前国内主要开源流媒体服务器之一，支持RTSP流(传输RTP包)的两种传输方式

RTP/AVP/UDP
	RTP/AVP/TCP
采用哪种传输方式是由客户端决定。

用ffmpeg便可向EasyDarwin推流，本文主要分析ffmpeg以UDP方式向EasyDarwin推流时服务器主要代码流程。

ffmpg以UDP方式推流指令：

 

ffmpeg -i rtsp:...]]></description><category></category></item></channel></rss>