℃冻番茄's Blog

记录平时工作、学习…
  • 首页
  • java/ssh/webx
  • centos/nginx/apache
  • Redis/Memcache/Mongodb
  • 图片/文字
  • 我的作品
  • 随心日志
  • 博客搬家了啦
    2014年02月19日|随心日志|2 条评论

    之前博客放置在buyvm的vps上,但最近几个月非常不稳定,老是offline.

    所以今天把博客搬到了在hostshare上购买的16.5元的vps上,速度还不错,先用用。不行只能再搬家了

    http://www.hostshare.cn

    HostShare是一个主机分享组织,成立于2008年,目前主力经营低价VPS;数据中心位于洛杉矶mc,2014新年全场促销码:2014OFF 

    全场超低折扣,以下为2套特价方案:

    • 核心:1核CPU
    • 内存:512MB
    • 硬盘:10GB
    • 流量:300GB
    • 端口:100M
    • 架构:OpenVZ
    • 价格:16.50元/月
    • 核心:1核CPU
    • 内存:256MB
    • 硬盘:10GB
    • 流量:300GB
    • 端口:100M
    • 架构:Xen
    • 价格:16.50元/月

    至今仍保持hostloc最低价格记录,性价比一流;由loc多位资深会员投资,目前由单手摘月妹子负责运营。本次优惠适用于openvz和xen全系列架构。

  • 祝大家2014马上有钱
    2014年01月24日|随心日志|祝大家2014马上有钱已关闭评论

    今年算起来是博客成立的第6个年头,非常惭愧的是很长时间不写博客了。

    2013年算是比较有意义的一年,在这年中主要是学习java,所有的项目都是用java开发,从php转java了,转变还是挺大的。

    今天是年前在公司的最后一天,下午就要回南昌过春节了。一年真快,在生活中最大的喜事是俺家又有一个新娃了。现在是俩娃的爹了,顿感亚力山大。在这里感谢我的媳妇,媳妇辛苦了,两娃都是你在操心,等我回家一定给你惊喜。

    另晒几张照片,阳光大好啊!

     

    PANO_20140124_095721 PANO_20131228_132758 PANO_20131228_133409

    西溪湿地

    西溪湿地

  • HTTP Live Streaming直播技术分析与实现[转]
    2013年04月28日|随心日志|HTTP Live Streaming直播技术分析与实现[转]已关闭评论

    花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的HLSLiveEncoder和第三方Http服务器(例如:Nginx),成功实现了HTTP Live Streaming直播,并在iphone上测试通过。我就把这当中的一些收获写在这里。

    HLS技术要点分析

    HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。要实现HLS点播,重点在于对媒体文件分段,目前有不少开源工具可以使用,这里我就不再讨论,只谈HLS直播技术。

    相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过HLS的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议。

    根据以上的了解要实现HTTP Live Streaming直播,需要研究并实现以下技术关键点

    1. 采集视频源和音频源的数据
    2. 对原始数据进行H264编码和AAC编码
    3. 视频和音频数据封装为MPEG-TS包
    4. HLS分段生成策略及m3u8索引文件
    5. HTTP传输协议

    其中第1点和第2点,我之前的文章中已经提到过了,而最后一点,我们可以借助现有的HTTP服务器,所以,实现第3点和第4点是关键所在。

    程序框架与实现

    通过以上分析,实现HLS LiveEncoder直播编码器,其逻辑和流程基本上很清楚了:分别开启音频与视频编码线程,通过DirectShow(或其他)技术来实现音视频采集,随后分别调用libx264和libfaac进行视频和音频编码。两个编码线程实时编码音视频数据后,根据自定义的分片策略,存储在某个MPEG-TS格式分段文件中,当完成一个分段文件的存储后,更新m3u8索引文件。如下图所示:

    上图中HLSLiveEncoder当收到视频和音频数据后,需要首先判断,当前分片是否应该结束,并创建新分片,以延续TS分片的不断生成。需要注意的是,新的分片,应当从关键帧开始,防止播放器解码失败。核心代码如下所示:

    TsMuxer的接口也是比较简单的。

    HLS分段生成策略和m3u8

    1. 分段策略

    • HLS的分段策略,基本上推荐是10秒一个分片,当然,具体时间还要根据分好后的分片的实际时长做标注
    • 通常来说,为了缓存等方面的原因,在索引文件中会保留最新的三个分片地址,以类似“滑动窗口”的形式,进行更新。

    2. m3u8文件简介

    m3u8,是HTTP Live Streaming直播的索引文件。m3u8基本上可以认为就是.m3u格式文件,区别在于,m3u8文件使用UTF-8字符编码。

    #EXTM3U                     m3u文件头,必须放在第一行
    #EXT-X-MEDIA-SEQUENCE       第一个TS分片的序列号
    #EXT-X-TARGETDURATION       每个分片TS的最大的时长
    #EXT-X-ALLOW-CACHE          是否允许cache
    #EXT-X-ENDLIST              m3u8文件结束符
    #EXTINF                     extra info,分片TS的信息,如时长,带宽等

    一个简单的m3u8索引文件

    运行效果

    在Nginx工作目录下启动HLSLiveEncoder,并用VLC播放器连接播放

    通过iPhone播放的效果

     

    文章转载自http://blog.csdn.net/juedaihuaihuai/article/details/6215093

  • (HLS播放器之一)HLS协议之M3U8解析
    2013年04月27日|随心日志|(HLS播放器之一)HLS协议之M3U8解析已关闭评论

    参照 http://tools.ietf.org/html/draft-pantos-http-live-streaming-08, 可以对M3U8有比较系统的认识。

    HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。在App Store中的视频相关的应用,基本都是应用的此种技术。该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。
    好了,我开始说说我的吧。如下

    #EXTM3U #EXT-X-TARGETDURATION:15 
    #EXTINF:7, http://data.video.qiyi.com/videos/movie/20111225/f9eb21f9247aafb04b39cc5bba13afa1.ts?start=0&end=658512&hsize=5343&tag=0&v=7620766549&contentlength=229360 
    #EXTINF:14, http://data.video.qiyi.com/videos/movie/20111225/f9eb21f9247aafb04b39cc5bba13afa1.ts?start=1712&end=2720295&hsize=5343&tag=1&v=7620766549&contentlength=1544984 
    #EXTINF:10, http://data.video.qiyi.com/videos/movie/20111225/f9eb21f9247aafb04b39cc5bba13afa1.ts?start=658512&end=3785637&hsize=5343&tag=1&v=7620766549&contentlength=1082880
    //省略...
    #EXT-X-DISCONTINUITY 
    #EXTINF:9, http://data.video.qiyi.com/videos/movie/20111225/f2eab9af69495077eea62a17029b0c9b.ts?start=0&end=836062&hsize=14301&tag=0&v=7620766549&contentlength=408148 
    #EXTINF:10, http://data.video.qiyi.com/videos/movie/20111225/f2eab9af69495077eea62a17029b0c9b.ts?start=1748&end=1489908&hsize=14301&tag=1&v=7620766549&contentlength=493500 
    #EXTINF:10, http://data.video.qiyi.com/videos/movie/20111225/f2eab9af69495077eea62a17029b0c9b.ts?start=377373&end=2159598&hsize=14301&tag=1&v=7620766549&contentlength=694660
    //省略...
    #EXT-X-ENDLIST
    

    这就是简略的M3U8文件。其中要注意#EXTINF:[int/double],表示这个片段的总时长,这个字段很关键我们可以通过它找见跳转位置的TS片段; #EXT-X-DISCONTINUITY,表示一个新的时间点开始,也就是说数据流的时间戳从此刻开始从0开始。那你可要准备好换算了,否则IMediaSeeking::SetPositions可就找不见了哦。当然有部分M3U8没有这个字段,大部分是影片总长度比较小的(不是绝对的哦)。
    剩下的事情就是解析字符串的了,不累赘了。还有就是最好将时间列表和ts地址列表分离开来,使用起来会更方便因为大部分时候是多线程的情况。

  • 关于人面解锁功能的一些胡扯
    2011年11月14日|随心日志|关于人面解锁功能的一些胡扯已关闭评论

    刚看了一个视频,用照片欺骗android4.0的人面解锁功能,据我所说,很多电脑也带这个功能,但基本上都可以用照片的方式进行欺通过,毕竟照片和真实人面通过摄像头生成的都是相同的平形图形图像。

    所以就想到一个方法

    记录合法用户的几个不同的面部特征。比如 眨左眼 眨右眼 张大嘴 等不同的几个动作保存下来

    在验证人面时,类似随机验证码的原理,随机通过动作的先后,例如:先眨右眼,再张嘴等来进行验证,这样一般来说,可以防止照片来欺骗

  • 从民生银行拿到了比较实时的黄金T+D数据
    2011年01月21日|我的作品, 随心日志|从民生银行拿到了比较实时的黄金T+D数据已关闭评论

    最近开始着手练习android开发,第一个练手作用是手机端的显示黄金白银报价,因为自己闲时玩玩t+d,但市面上还没有相应的手机应用,所以决定自己做个用用。

    今天分析民生银行的数据,发现还是容易得到的,然后用php封装了一下,从民生银行拿到数据,并且做上memcache缓存,生成json数据输出。这样就可以做为android手机端的数据源了!

    经过分析,现在从民生银行里拿到了还算比较实时的黄金t+d和白银t+d的报价信息。价格信息非常的全,买卖共10个报价并且交易手数等等。目前已经封装成了接口形式

    数据源 http://phpd.cn/td.php 支持JSONP格式,跨域直接调用

    html显示页面 http://phpd.cn/td.html 演示只显示白银t+d

    希望有共同爱好的朋友一起讨论讨论。

  • 2011年的第一天,祝大家元旦快乐!
    2011年01月01日|随心日志|4 条评论

    辞旧迎新的时刻,祝愿大家在2011年身体健康、工作顺心、数钱数到手抽筋!!!!

    自从来上海加入我友网后,工作上还算顺利的,像什么加班啊、福利啊什么的神马都是浮云,就希望他妈的发些年终奖另多调几天的休,好好过完这个年。

    另就近网web版已进入开发尾期,服务接口都已开发完毕,现在开始抽时间好好学习android开发了,手机端的 LBS 应用还是有非常大的市场前景的,真是另人期待啊。

  • 博客更新了主题,启用了反垃圾评论插件
    2010年12月24日|图片/文字, 随心日志|博客更新了主题,启用了反垃圾评论插件已关闭评论

    主题用的是Lightword最新版,修改了一下css,让它显示中文更好,默认字体改为微软雅黑。

    另博客里的垃圾评论太多了,以前一直不愿整理,后来才知道wp自带了一个非常棒的反垃圾评论插件Akismet,只是没启用而以,今天也把它打开了,500多个评论99%拉到了垃圾评论里面,确实不错!

    之前wp的自动升功能一直不好使,同样也是今天才发现wp的文件所有者是root,用ftp的方式根本改不了wp的文件,chown了一下,就ok了.

    另诚招独立博客友情链接!

  • 从明天起,正式从常州离职了
    2010年10月17日|随心日志|10 条评论

    因为十一在南昌买了房子,所以在常州的收入已无法满足资金上的要求了,另最关键的是目前常州公司在我从事的网站方面没有一个好的前景,所以打算离开。

    新找的东家是上海我友网 www.woyo.com 研发部开发工程师,下周去上海了,先准备找好房子。然后25号去办理入职手续了!希望在新的公司先是能学到更多,同时希望公司能发展壮大!

  • 原vps位于美国东海岸,速度太慢了,换了个西海岸的vps
    2010年10月17日|随心日志|10 条评论

    购买的是buyvm.net 的15美金1年的计划,经过测试速度还是不错的。

    目前先把blog搬到新的vps中,现在vps安装的是lnmp环境,这样可以更省内存!

>

友情链接

  • DotNet'程序员
  • IT P民
  • Iterse's BLOG
  • loi
  • OOPHP开源博客
  • PHPText.Net
  • Zend Studio
  • 懒人雷
  • 新易网博客
  • 朱力
  • 王小驴
  • 生活点滴
  • 百度三千
  • 秘密小黑屋
  • 老王python
  • 踢扑网

热门标签

Redis 开张 jquery 一句话 flash mongodb 博客 kis memcache 逗乐 卡巴斯基 Varnish 恋 xml key

最新评论

  • 提前祝您新年快乐。 乙未年 »
  • 我就是随便看看
  • 顺便说一下,你这个发表评论 »
  • 使用过程中有点问题 public »
  • 一时忘了,就网上随意搜出来的一个
Copyright © 2014 ℃冻番茄's Blog All rights reserved. Powered By WordPress
▲