<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[liwf616的专栏]]></title><description><![CDATA[行者无疆 始于足下]]></description><link>https://blog.csdn.net/liwf616</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; liwf616]]></copyright><item><title><![CDATA[Webrtc FrameBuffer实现原理]]></title><link>https://blog.csdn.net/liwf616/article/details/100568185</link><guid>https://blog.csdn.net/liwf616/article/details/100568185</guid><author>liwf616</author><pubDate>Thu, 05 Sep 2019 22:00:27 +0800</pubDate><description><![CDATA[Webrtc jitterbuffer实现串讲（未完待续）
InsertPacket
int64_t FrameBuffer::InsertFrame(std::unique_ptr&lt;EncodedFrame&gt; frame) {
  TRACE_EVENT0("webrtc", "FrameBuffer::InsertFrame");
  RTC_DCHECK(frame);

  i...]]></description><category></category></item><item><title><![CDATA[mac 下ffmpeg enable-libsrt编译方法及问题解决]]></title><link>https://blog.csdn.net/liwf616/article/details/99215608</link><guid>https://blog.csdn.net/liwf616/article/details/99215608</guid><author>liwf616</author><pubDate>Sun, 11 Aug 2019 18:42:49 +0800</pubDate><description><![CDATA[1. 编译srt
1.1 下载及编译srt代码
git clone https://github.com/Haivision/srt.git
cd srt
./configure
make &amp;&amp; make install  //或者使用clion的cmake

2. 安装ffmepg之间的准备
2.1 检查是否安装openssl
cmd$ pkg-config --list-all...]]></description><category></category></item><item><title><![CDATA[DASH  && Nginx  && Webrtc && Quic学习资料超链]]></title><link>https://blog.csdn.net/liwf616/article/details/85706825</link><guid>https://blog.csdn.net/liwf616/article/details/85706825</guid><author>liwf616</author><pubDate>Thu, 03 Jan 2019 17:25:49 +0800</pubDate><description><![CDATA[文章地址：https://github.com/liwf616/awesome-live-stream
dash学习资料快速链接

fmp4实现开源方式
fmp4 nginx实现-nginx-vod-module
dash相关介绍
hls vs dash
fmp4开源-shaka-packager
nginx rtmp -&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; dash
nginx ts-&amp;amp;amp;amp;amp;am]]></description><category></category></item><item><title><![CDATA[openrestry 火焰图]]></title><link>https://blog.csdn.net/liwf616/article/details/85012770</link><guid>https://blog.csdn.net/liwf616/article/details/85012770</guid><author>liwf616</author><pubDate>Sat, 15 Dec 2018 11:38:36 +0800</pubDate><description><![CDATA[1. 安装前的准备

1.1 确定/etc/yum.repos.d/CentOS-Debuginfo.repo是否存在.

如果不存在，则创建，并写入如下内容
# CentOS-Debug.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each m...]]></description><category></category></item><item><title><![CDATA[Nginx开启/关闭Core文件及调试]]></title><link>https://blog.csdn.net/liwf616/article/details/83864768</link><guid>https://blog.csdn.net/liwf616/article/details/83864768</guid><author>liwf616</author><pubDate>Thu, 08 Nov 2018 18:15:02 +0800</pubDate><description><![CDATA[1. Nginx生成core的配置

ulimit -a 可以查看系统core文件的大小限制（第一行），core文件大小设置为0,  即没有打开core dump设置。

	core file size          (blocks, -c) 1024
	data seg size           (kbytes, -d) unlimited
	scheduling priority   ...]]></description><category></category></item><item><title><![CDATA[媒体文件格式分析FMP4]]></title><link>https://blog.csdn.net/liwf616/article/details/81111577</link><guid>https://blog.csdn.net/liwf616/article/details/81111577</guid><author>liwf616</author><pubDate>Thu, 19 Jul 2018 10:55:41 +0800</pubDate><description><![CDATA[媒体文件格式分析之FMP4

MP4 中最基本的单元就是Box，它内部是通过一个一个独立的Box拼接而成的。所以，这里，我们先从 Box 的讲解开始,每个 Box 是由 Header 和 Data 组成的，FullBox 是 Box 的扩展，Box 结构的基础上在 Header 中增加 8bits version 和 24bits flags



1. 名词解释



2. 最小单元Box


...]]></description><category></category></item><item><title><![CDATA[Nginx stream模块阅读!]]></title><link>https://blog.csdn.net/liwf616/article/details/79391311</link><guid>https://blog.csdn.net/liwf616/article/details/79391311</guid><author>liwf616</author><pubDate>Tue, 27 Feb 2018 17:39:06 +0800</pubDate><description><![CDATA[Nginx stream模块阅读!ngx_stream_handler.c ngx_stream_init_connection函数
  代码解读:
  
  
  在ngx_stream_optimize_servers里设置有连接发生时的回调函数ngx_stream_init_connection.
  创建一个处理tcp的会话对象.
  创建ctx数组，用于存储模块的ctx数据，调用handl]]></description><category></category></item><item><title><![CDATA[NGINX TIME_WAIT的解决办法]]></title><link>https://blog.csdn.net/liwf616/article/details/79164625</link><guid>https://blog.csdn.net/liwf616/article/details/79164625</guid><author>liwf616</author><pubDate>Thu, 25 Jan 2018 17:30:28 +0800</pubDate><description><![CDATA[NGINX TIME_WAIT的解决办法及TCP状态解析



1. 检测TIME_WAIT状态的语句：



netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回结果：



TIME_WAIT 1000
CLOSE_WAIT 5
FIN_WAIT2 20
ESTABLISHED 10000
LAST_A]]></description><category></category></item><item><title><![CDATA[TCP 的那些事儿（下）]]></title><link>https://blog.csdn.net/liwf616/article/details/78913695</link><guid>https://blog.csdn.net/liwf616/article/details/78913695</guid><author>liwf616</author><pubDate>Wed, 27 Dec 2017 16:29:56 +0800</pubDate><description><![CDATA[这篇文章是下篇，所以如果你对TCP不熟悉的话，还请你先看看上篇《TCP的那些事儿（上）》 上篇中，我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事，那就是要在一个网络根据不同的情况来动态调整自己的发包的速度，小则让自己的连接更稳定，大则让整个网络更稳定。在你阅读下篇之前，你需要做好准备，本篇文章有好些算法和策略，可能会引发你的各种思考，让你的大脑分配很多内存和计算资]]></description><category></category></item><item><title><![CDATA[TCP 的那些事儿（上）]]></title><link>https://blog.csdn.net/liwf616/article/details/78911231</link><guid>https://blog.csdn.net/liwf616/article/details/78911231</guid><author>liwf616</author><pubDate>Wed, 27 Dec 2017 13:42:33 +0800</pubDate><description><![CDATA[TCP是一个巨复杂的协议，因为他要解决很多问题，而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程，但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节，我还是推荐你去看W.Richard Stevens的《TCP/IP
 详解 卷1：协议》（当然，你也可以去读一下RFC793以及后面N多的RFC）。另外，本文我会使用英文术语，这样方便你通过这些英文关键词来查找相]]></description><category></category></item><item><title><![CDATA[Nginx HLS压测工具之vegeta]]></title><link>https://blog.csdn.net/liwf616/article/details/78555097</link><guid>https://blog.csdn.net/liwf616/article/details/78555097</guid><author>liwf616</author><pubDate>Thu, 16 Nov 2017 20:26:16 +0800</pubDate><description><![CDATA[HLS压测工具之vegeta1. MAC安装brew update && brew install vegeta2. 构造target.txt
创建target.txt文件，内容如下:
GET http://test.hlslive.ks-cdn.com/live/test/index.m3u83. 执行vegeta
执行：
vegeta attack -targets="target.txt" -]]></description><category></category></item><item><title><![CDATA[SRS部署环境之HDS(HTTP Dynamic Streaming)]]></title><link>https://blog.csdn.net/liwf616/article/details/78344175</link><guid>https://blog.csdn.net/liwf616/article/details/78344175</guid><author>liwf616</author><pubDate>Wed, 25 Oct 2017 17:39:11 +0800</pubDate><description><![CDATA[SRS部署环境之HDS(HTTP Dynamic Streaming)
拉取gitbub源码:
    git clone https://github.com/ossrs/srs &&
    cd srs/trunk
编译：
    ./configure --with-hds && make
修改配置conf/srs.conf,在 defaultVhost 添加如下配置
vhost __def]]></description><category></category></item><item><title><![CDATA[Nginx 反向代理的基本配置及命令解析(以HLS为例子 )]]></title><link>https://blog.csdn.net/liwf616/article/details/78307593</link><guid>https://blog.csdn.net/liwf616/article/details/78307593</guid><author>liwf616</author><pubDate>Sun, 22 Oct 2017 00:13:58 +0800</pubDate><description><![CDATA[Nginx 反向代理的基本配置及命令解析1.proxy_pass
  语法: proxy_pass URL;
  
  配置块：: location, if in location, limit_except
  此配置项将当前请求反向代理到URL参数指定的服务器上。协议可以是”http”或”https”。URL可以是主机名或IP地址加端口的形式，例如：proxy_pass http://local]]></description><category></category></item><item><title><![CDATA[Nginx Lua 三种重定向的使用及比较]]></title><link>https://blog.csdn.net/liwf616/article/details/78256062</link><guid>https://blog.csdn.net/liwf616/article/details/78256062</guid><author>liwf616</author><pubDate>Tue, 17 Oct 2017 00:40:13 +0800</pubDate><description><![CDATA[lua 三种重定向的使用及比较1. ngx.exec
  语法：ngx.exec(uri, args?) 
  主要实现的是内部的重定向，等价于下面的rewrite指令:
rewrite regrex replacement last;  例子：ngx.exec('/some-location');
ngx.exec('/some-location', 'a=3&amp;amp;b=5&amp;amp;c=6');
ngx.exe]]></description><category></category></item><item><title><![CDATA[vim E303问题解决办法]]></title><link>https://blog.csdn.net/liwf616/article/details/78093771</link><guid>https://blog.csdn.net/liwf616/article/details/78093771</guid><author>liwf616</author><pubDate>Tue, 26 Sep 2017 11:56:15 +0800</pubDate><description><![CDATA[vim E303问题解决办法问题现象：用VIM打开一个文件时，出现一下错误信息提示：E303: Unable to open swap file for "[No Name]", recovery impossible1.在命令行模式下执行：:help E3032.输出相关信息如下：Unable to open swap file for "{filename}", recovery impossi]]></description><category></category></item><item><title><![CDATA[Nginx learning 之location及优先级]]></title><link>https://blog.csdn.net/liwf616/article/details/78021267</link><guid>https://blog.csdn.net/liwf616/article/details/78021267</guid><author>liwf616</author><pubDate>Mon, 18 Sep 2017 17:07:44 +0800</pubDate><description><![CDATA[nginx配置location总结1. 语法规则
  location [=|~|~*|^~] /uri/ { … }  模式
  含义  location = /uri
  = 表示精确匹配，只有完全匹配上才能生效
  location ~ pattern
  表示区分大小写的正则匹配
  location ~* pattern
  表示不区分大小写的正则匹配
  location ^~ /uri]]></description><category></category></item><item><title><![CDATA[Smart and Efficient Byte-Range Caching with NGINX & NGINX Plus]]></title><link>https://blog.csdn.net/liwf616/article/details/77966100</link><guid>https://blog.csdn.net/liwf616/article/details/77966100</guid><author>liwf616</author><pubDate>Wed, 13 Sep 2017 14:50:55 +0800</pubDate><description><![CDATA[When correctly deployed, caching is
 one of the quickest ways to accelerate web content. Not only does caching place content closer to the end user (thus reducing latency), it also reduces the number]]></description><category></category></item><item><title><![CDATA[Nginx Learing - ngx_http_request_t 结构体]]></title><link>https://blog.csdn.net/liwf616/article/details/77965030</link><guid>https://blog.csdn.net/liwf616/article/details/77965030</guid><author>liwf616</author><pubDate>Wed, 13 Sep 2017 14:04:31 +0800</pubDate><description><![CDATA[ngx_http_request_t]]></description><category></category></item><item><title><![CDATA[Nginx Rtmp  Module - HLS切片和级联播放]]></title><link>https://blog.csdn.net/liwf616/article/details/77886991</link><guid>https://blog.csdn.net/liwf616/article/details/77886991</guid><author>liwf616</author><pubDate>Thu, 07 Sep 2017 21:11:00 +0800</pubDate><description><![CDATA[Nginx Rtmp  Module - HLS切片和播放1、名词解释
媒体片段文件(.ts):   媒体片段是由源站生成的，基于编码后的媒体源，并且是由一系列的 .ts 格式的文件组成，其中包含了你想通过 rtmp流携带的 H.264视频和AAC 音频。对于纯音频的直播，切片器可以生产MPEG 基础音频流，其中包含了 ADTS头的AAC音频。
HLS直播索引文件(.m3u8):  由源站附带生成保]]></description><category></category></item><item><title><![CDATA[Nginx Rtmp Learing 之HTTP HOOK回调及unix socket使用]]></title><link>https://blog.csdn.net/liwf616/article/details/77882508</link><guid>https://blog.csdn.net/liwf616/article/details/77882508</guid><author>liwf616</author><pubDate>Thu, 07 Sep 2017 15:48:12 +0800</pubDate><description><![CDATA[Nginx Rtmp Learing 之HTTP HOOK回调和unix socket使用1. 名词解释
LMSS  Live Media Streaming Service 直播流媒体服务
LMDS  Live Media dispatch Service 直播媒体调度服务
2. 概述
  
  在nginx的rtmp协议实现中，一个简单的推拉流会被拆分成多个事件(CONNECT,PUBLISH,]]></description><category></category></item></channel></rss>