<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mtour's blog]]></title><description><![CDATA[Life was like a box of chocolates. You never know what you're gonna get.]]></description><link>https://blog.youkuaiyun.com/mtour</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mtour]]></copyright><item><title><![CDATA[ios平台上  hls直播  第二次点击无法播放]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/43567191</link><guid>https://blog.youkuaiyun.com/mtour/article/details/43567191</guid><author>mtour</author><pubDate>Fri, 06 Feb 2015 17:58:20 +0800</pubDate><description><![CDATA[html5  video 标签中 支持  m3u8 直播






当网页在ios平台展示时，第一次点击正常播放，第二次点击就无法播放需要刷新页面。 具体机制还没搞明白。 使用了比较土的方法实现了每次点击都能实时播放


 
 
 

JW Player for Flash 

 
body { background-color: #fff; padding: 0 20px;]]></description><category></category></item><item><title><![CDATA[http live streaming  (hls)  实时切片]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/43530163</link><guid>https://blog.youkuaiyun.com/mtour/article/details/43530163</guid><author>mtour</author><pubDate>Thu, 05 Feb 2015 17:10:13 +0800</pubDate><description><![CDATA[之前是通过nginx进行 hls 直播，现在尝试自己去实现hls服务，以方便后续需求的更改。


实时的h264视频流封装为一段一段的ts流并生成一个动态更新的 m3u8文件。目前 h264 直接封装为ts流还有点问题，暂时采用下面的方案：
h264 封装为 mp4文件 再通过ffmpeg 转码为ts文件


m3u8 文件格式如下


#EXTM3U
#EXT-X-TARG]]></description><category></category></item><item><title><![CDATA[c++ 配置文件操作类]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/42423443</link><guid>https://blog.youkuaiyun.com/mtour/article/details/42423443</guid><author>mtour</author><pubDate>Mon, 05 Jan 2015 15:20:07 +0800</pubDate><description><![CDATA[配置文件类似下面的格式


param1=value1
param2=value2
....


简单封装了c++类，可以读取任一参数


接口定义
/*
           author cwliu
           date: 2015-01-05
*/

#ifndef CONFIGFILE_H
#define CONFIGFILE_H

#include 
#]]></description><category></category></item><item><title><![CDATA[rtsp获取视频帧  ffmpeg解码h264数据 D3D显示yv12数据]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/42170767</link><guid>https://blog.youkuaiyun.com/mtour/article/details/42170767</guid><author>mtour</author><pubDate>Fri, 26 Dec 2014 13:52:25 +0800</pubDate><description><![CDATA[代码下载地址:   http://download.youkuaiyun.com/detail/mtour/8302907


本代码实现了 通过rtsp协议获取视频流数据，通过ffmpeg解码为yv12数据，通过D3D进行图像显示


整个程序包含 RtspStream模块  H264Decoder模块   D3D模块


RtspStream模块源码可在之前的文章中找到。]]></description><category></category></item><item><title><![CDATA[c语言实现cgi程序]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41845293</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41845293</guid><author>mtour</author><pubDate>Wed, 10 Dec 2014 14:00:55 +0800</pubDate><description><![CDATA[在tplink上刷了openwrt固件,  在上面编写了cgi测试程序
        示例如下:

#include 
#include "socket/Net.h"

// test user name and password
int Login(char* sJrmAddr,int nJrmPort,char* sUserNmae,char* sUserPwd);

int main]]></description><category></category></item><item><title><![CDATA[c++ 实现 http 上传和下载]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41845129</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41845129</guid><author>mtour</author><pubDate>Wed, 10 Dec 2014 13:46:17 +0800</pubDate><description><![CDATA[代码下载地址:   http://download.youkuaiyun.com/detail/mtour/8243527


      最近写了个程序需要用到http通讯，由于flash空间比较小，没有考虑 libcurl库，用c++封装了一个http类，实现了http  文件上传和下载


      #include   
#include   
#include   
#include ]]></description><category></category></item><item><title><![CDATA[xml 转义字符]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41679115</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41679115</guid><author>mtour</author><pubDate>Tue, 02 Dec 2014 15:12:16 +0800</pubDate><description><![CDATA[今天在接入大华dvr 时发现 大华rtsp地址中存在&符号，但是我的配置文件是xml格式的，如下

dah001
rtsp
rtsp://admin:admin@10.10.2.250:554/cam/realmonitor?channel=1&subtype=0
hik001


对于&符号需要转义


XML实体中不允许出现"&",""等特殊字符,否则XML语法检查时将出错,如果编]]></description><category></category></item><item><title><![CDATA[移动设备对于hls协议的支持]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41480543</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41480543</guid><author>mtour</author><pubDate>Tue, 25 Nov 2014 13:57:23 +0800</pubDate><description><![CDATA[做了一个简单的页面能够，]]></description><category></category></item><item><title><![CDATA[通过nginx搭建hls流媒体服务器]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41418409</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41418409</guid><author>mtour</author><pubDate>Sun, 23 Nov 2014 21:28:16 +0800</pubDate><description><![CDATA[1.    通过录像文件模拟直播源，通过rtmp协议推送到ngi]]></description><category></category></item><item><title><![CDATA[nginx  http代理配置]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41383493</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41383493</guid><author>mtour</author><pubDate>Sat, 22 Nov 2014 17:30:08 +0800</pubDate><description><![CDATA[示例：

location /test{
            proxy_pass http://zhidao.baidu.com/ ;
        }]]></description><category></category></item><item><title><![CDATA[基于live555的rtsp 客户端模块优化]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41113589</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41113589</guid><author>mtour</author><pubDate>Fri, 14 Nov 2014 09:24:39 +0800</pubDate><description><![CDATA[之前发布过一个基于testRtspClient.cpp 改装的 rtsp client模块]]></description><category></category></item><item><title><![CDATA[彻底清理该死的搜狗输入法]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41080791</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41080791</guid><author>mtour</author><pubDate>Thu, 13 Nov 2014 16:05:49 +0800</pubDate><description><![CDATA[最近经常发现电脑有点卡，cpu资源占用率比较高]]></description><category></category></item><item><title><![CDATA[ntp 服务编译安装 及 更改端口]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/41073525</link><guid>https://blog.youkuaiyun.com/mtour/article/details/41073525</guid><author>mtour</author><pubDate>Thu, 13 Nov 2014 09:10:03 +0800</pubDate><description><![CDATA[开源库下载地址:   http://download.youkuaiyun.com/detail/mtour/8151863]]></description><category></category></item><item><title><![CDATA[c++ 虚函数表解析]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40785869</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40785869</guid><author>mtour</author><pubDate>Tue, 04 Nov 2014 15:37:32 +0800</pubDate><description><![CDATA[在面试中jingc
前言

 

C++中的虚函数的作用主要是实现了多态的机制。关于多态，简而言之就是用父类型别的指针指向其子类的实例，然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”，这是一种泛型技术。所谓泛型技术，说白了就是试图使用不变的代码来实现可变的算法。比如：模板技术，RTTI技术，虚函数技术，要么是试图做到在编译时决议，要么试图做到运行时决议。]]></description><category></category></item><item><title><![CDATA[UDP 打洞示例  包含 服务器 客户端]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40785705</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40785705</guid><author>mtour</author><pubDate>Tue, 04 Nov 2014 15:28:11 +0800</pubDate><description><![CDATA[客户端示例：


#include "Net.h"
#include "../p2pInfo.h"

int main()
{
	CUdp  udp;
	if (0!=udp.Open(16888))
	{
		printf("client udp open failed \n");
	    return -1;
	}

	P2P_CLIENT_INFO clientInfo;
	mems]]></description><category></category></item><item><title><![CDATA[linux epoll 使用详解]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40380191</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40380191</guid><author>mtour</author><pubDate>Wed, 22 Oct 2014 18:03:26 +0800</pubDate><description><![CDATA[epoll - I/O event notification facility

在linux的网络编程中，很长的时间都在使用select来做事件触发。在linux新的内核中，有了一种替换它的机制，就是epoll。
相比于select，epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中，它是采用轮询来处理的，轮询的fd数目越多，自然耗时越多。并且]]></description><category></category></item><item><title><![CDATA[linux下编译libcurl]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40376339</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40376339</guid><author>mtour</author><pubDate>Wed, 22 Oct 2014 14:40:04 +0800</pubDate><description><![CDATA[http://curl.haxx.se/download.html 地址下载最新版本源码


解压源码包：  tar  -xzvf  curl-7.38.0.tar.gz


进入源码目录:  cd curl-7.38.0/


配置编译环境


./configure --prefix=/usr/local/curl --disable-shared --enable-s]]></description><category></category></item><item><title><![CDATA[libcurl 通过http协议下载文件并显示下载进度]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40375947</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40375947</guid><author>mtour</author><pubDate>Wed, 22 Oct 2014 14:22:51 +0800</pubDate><description><![CDATA[vc6 测试工程下载地址： 


代码如下：


size_t my_write_func(void *ptr, size_t size, size_t nmemb, FILE *stream)
{
  return fwrite(ptr, size, nmemb, stream);
} 
 
int my_progress_func(char *progress_data,
    ]]></description><category></category></item><item><title><![CDATA[json c++ 解析库 jsoncpp 编译和使用]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40348473</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40348473</guid><author>mtour</author><pubDate>Tue, 21 Oct 2014 17:39:29 +0800</pubDate><description><![CDATA[jsoncpp 源码下载地址 :   https://github.com/open-source-parsers/jsoncpp]]></description><category></category></item><item><title><![CDATA[简单的录像回放服务器]]></title><link>https://blog.youkuaiyun.com/mtour/article/details/40344517</link><guid>https://blog.youkuaiyun.com/mtour/article/details/40344517</guid><author>mtour</author><pubDate>Tue, 21 Oct 2014 14:38:20 +0800</pubDate><description><![CDATA[在windows上搭建 wamp 服务]]></description><category></category></item></channel></rss>