自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 《视频直播技术详解》 系列之六:延迟优化

原文链接;:点击打开链接拷贝黏贴下七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。  结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技

2016-09-29 17:10:34 1432 1

原创 怎么理解state thread 库(2)

我分析程序,一般首先是分析它的线程模型。看看一共有几个线程,各个线程都干了什么。但分析st-thread库,就比较迷茫了。因为它本身有个线程模块,其实是一个堆里的数据块,并没有真正的线程。我曾经怀疑,在st_ini里,有两次创建线程的机会,一个是一个idle_therad,一个是自带第一个线程。但仔细分析代码。还是没有真正的线程创建。莫非是外部创建线程,通过某种巧妙的方法,传给st库?看pub

2016-09-29 14:41:14 2511

转载 rtmp和rtp协议转换中需要注意的一个问题。

原文地址 点击打开链接其中重点的是这样一段: 唯一值得注意的一点是,在RTMP协议中,音频数据的间隔是用时间做单位的,而RTP中的时间戳(timestamp),是sample数量。故当RTMP中两包音频包相差20MS时,RTP的时间戳就应该加上320(加320是因为恒采用16khz编码采样率)。这是个细节。记录下。

2016-09-29 14:09:57 5329 1

原创 怎么理解state thread库?

主要一下几个问题1)到底st_thread库运行的线程是谁创建的?2)st_create_thread,创建的线程是个什么东西?3)线程怎么切换?4)和reactor是个什么关系?首先还原一些关键的代码。#define _ST_SWITCH_CONTEXT(_thread) \ ST_BEGIN_MACRO

2016-09-28 15:32:06 1614

原创 rmtp流中对音频数据头的解析。

rtmp 对消息的封装是通过chunk地方式来确定的。其中在msg id == 0x08表示音频,就是说后面带的消息是音频数据。那么,这个音频数据是什么格式呢?今天也是第一次碰到这个问题。记录下有下面的数据00000000  04 00 02 80 00 00 76 08  01 00 00 00 80 79 1b  00000010  78 29 ed 98 29 2

2016-09-27 14:58:30 2043 1

原创 ffmpeg代码分析(1)--编译裁剪

我们很少使用到ffmpge完整的功能库,大部分时候,只需要特定的编解码 传输协议,那么该怎么裁剪ffmpeg呢?答案就是configure命令。

2016-09-13 13:59:20 7271

原创 srs代码学习(9)----http_api处理流程

srs提供http相关功能。包括http_server http_api查询功能和http_heartbeat ,http_callback等。首先分析http_api,这个提供一系列的http的接口,可以用来查询服务器的状态,但它的重要性并不只限于http查询,更重要的是在将来上线运营中,随着机器部署的增加。在需要在线修改机器配置的时候,也可以用这个接口。下面来分析下一个http

2016-09-13 11:06:28 9525 1

原创 srs编译遇到的问题

编译配置如下 ./configure --disable-all --with-ssl --with-http-api --with-http-callback --with-ffmpeg --with-transcode提示安装cherrypy需要管理员权限。提示为"install CherryPy-3.2.4" require sudoer failed. ret=1

2016-09-12 14:07:11 5415

原创 MP4文件中如何寻找一个sample--MP4文件简单解析

晚上搜索MP4格式的文章。都是从上到下,从外到里,一层一层开拔各种的box,等到了真正感兴趣的boxer的时候,通常观看者已经累的老眼昏花,那么多的boxer。那么多的名字。怎么记得住呢?我将从一个全新的角度来解析mp4文件,就是怎么定位一个sample ,MP4为啥要这么定位?

2016-09-09 11:37:38 4103 2

原创 srs代码学习(8)--rtmp发送

今天分析下发送过程以及其中的数据流变化。发送相对简单点。

2016-09-08 10:00:09 1386 5

原创 后半年的目标

以前干活从不给自己目标,感觉过去就过去了。从现在开始,也逐步给自己定个目标。要不怎么跟的上咱首富呢?比如先定个小目标1)建立一个视频会议系统的团队。包括服务 移动客户端 和监控三个方面2)给srs模块增加udp模块,实现rtmp over udp.3) 建立一个p2p 系统。这个属于探索了。发现现在p2p在大型直播上用的还是比较多的。基本就是这样。

2016-09-07 17:06:43 432

原创 raknet代码学习(1)--NATCompleteServer

学习raknet的第一篇日志,这个测试项目是做stun穿透用的,就是传说中的stun服务。开始分析代码

2016-09-07 16:34:05 983

原创 srs代码学习(7)--消息接收过程

通过前几篇的分析。我们发现,如果一份数据推上来的话,有点时候需要转发多路出去,比如forward,多路forward,或者多个edge的出现,这时候的消息如果每一路都复制一份的话,内存开销会非常的打。那么srs怎么处理呢?首先看看消息的结构

2016-09-06 15:16:58 4793 3

原创 srs代码学习(6)--如何实现edge

sre集群的方式有两种一种是forword类型的。一种是edge-origin类型的。后者比前者要复杂的多。就从比较难的开始分析。有实现edge,首先得在配置文件中做配置。配置方式如下这个配置里配置了实时模式,边缘模式(remote)那么这个配置到了代码中是如何生效的呢?这里面核心的类还是SrsSource,如果服务设置为边缘模式,这个类的角色,经历了从服务到客户端

2016-09-06 10:51:10 4611

转载 从UDP的”连接性”说起–告知你不为人知的UDP

原文地址:文/ 腾讯 morganhuang 黄日成很早就计划写篇关于UDP的文章,尽管UDP协议远没TCP协议那么庞大、复杂,但是,要想将UDP描述清楚,用好UDP却要比TCP难不少,于是文章从下笔写,到最终写成,断断续续拖了好几个月。说起网络socket,大家自然会想到TCP,用的最多也是TCP,UDP在大家的印象中是作为TCP的补充而存在,是无连接、不可靠

2016-09-01 15:56:49 4387

转载 rtmp的消息类型

原文地址:http://blog.chinaunix.net/uid-26000296-id-3365019.html拷贝黏贴AbstractThis document describes the different types of messages and commandsthat are exchanged between the server and the c

2016-09-01 11:24:54 1850

空空如也

空空如也

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

TA关注的人

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