手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Misc

M3U8文件简介

这两天一直在纠结视频相关。用MP4的话,直接video标签+mp4的话,默认缓冲至少要5M左右 。如果是移动端,5M 花的时间太长了。所以才尝试用m3u8来解决(嗯。ffmpeg直接支持将视频切成ts,同时生成m3u8文件。我这里就不写了。网上例子太多太多了)

以下内容来自:http://blog.sina.com.cn/s/blog_6cf7acdf0102v0xv.html

1.   M3U8文件概念
    M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。

2.   M3U8文件举例

例如使用云图TV点播直播节目时,发送请求:

http://121.199.63.236:7613/m3u8/cckw1/szws.m3u8?from=bab&fun=yes&chk=y&chunk=xax&ppw=yuntutv&auth=yuntutvyuntutvyuntutv&auth=yuntutvyuntutvyuntutv&nwtime=1406515232&sign=033d5483609e6bc87987fc7d2f30a024

返回M3U8文件,文件内容如下:

XML/HTML代码
  1. #EXTM3U  
  2. #EXT-X-MEDIA-SEQUENCE:140651513  
  3. #EXT-X-TARGETDURATION:10  
  4.   
  5. #EXTINF:8,  
  6. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651513[140651513].ts  
  7.   
  8. #EXTINF:9,  
  9. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514[140651514].ts  
  10.   
  11. #EXTINF:11,    
  12. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651515[140651515].ts  
  13.   
  14. #EXTINF:10,  
  15. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651516[140651516].ts  
  16.   
  17. #EXTINF:12,  
  18. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651517[140651517].ts  
  19.   
  20. #EXTINF:8,  
  21.   
  22. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651518[140651518].ts  
  23.   
  24. #EXTINF:12,  
  25. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651519[140651519].ts  
  26.   
  27. #EXTINF:8,  
  28. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651520[140651520].ts  
  29.   
  30. #EXTINF:9,  
  31. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651521[140651521].ts  
  32.   
  33. #EXTINF:13,  
  34. http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651522[140651522].ts  

然后根据索引的中链接请求下载音视频并进行播放

3.   M3U文件标签及属性说明

M3U文件中可以包含多个tag,每个tag的功能和属性如下:

#EXTM3U

每个M3U文件第一行必须是这个tag,请标示作用

#EXT-X-MEDIA-SEQUENCE:140651513 

每一个media URI 在 PlayList中只有唯一的序号,相邻之间序号+1, 一个media URI并不是必须要包含的,如果没有,默认为0

#EXTINF:,

 duration 指定每个媒体段(ts)的持续时间(秒),仅对其后面的URI有效,title是下载资源的url

#EXT-X-TARGETDURATION

指定最大的媒体段时间长(秒)。所以#EXTINF中指定的时间长度必须小于或是等于这个最大值。这个tag在整个PlayList文件中只能出现一 次(在嵌套的情况下,一般有真正ts url的m3u8才会出现该tag)

#EXT-X-KEY

表示怎么对media segments进行解码。其作用范围是下次该tag出现前的所有media URI,属性为NONE 或者 AES-128。NONE表示 URI以及IV(Initialization Vector)属性必须不存在, AES-128(Advanced EncryptionStandard)表示URI必须存在,IV可以不存在。

  对于AES-128的情况,keytag和URI属性共同表示了一个key文件,通过URI可以获得这个key,如果没有IV(Initialization Vector),则使用序列号作为IV进行编解码,将序列号的高位赋到16个字节的buffer中,左边补0;如果有IV,则将改值当成16个字节的16进制数。

#EXT-X-PROGRAM-DATE-TIME

将一个绝对时间或是日期和一个媒体段中的第一个sample相关联,只对下一个meida URI有效,格式如#EXT-X-PROGRAM-DATE-TIME:

For example: #EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00

#EXT-X-ALLOW-CACHE

是否允许做cache,这个可以在PlayList文件中任意地方出现,并且最多出现一次,作用效果是所有的媒体段。格式如下:#EXT-X-ALLOW-CACHE:

#EXT-X-PLAYLIST-TYPE

提供关于PlayList的可变性的信息, 这个对整个PlayList文件有效,是可选的,格式如下:#EXT-X-PLAYLIST-TYPE::如果是VOD,则服务器不能改变PlayList 文件;如果是EVENT,则服务器不能改变或是删除PlayList文件中的任何部分,但是可以向该文件中增加新的一行内容。

#EXT-X-ENDLIST

表示PlayList的末尾了,它可以在PlayList中任意位置出现,但是只能出现一个,格式如下:#EXT-X-ENDLIST

#EXT-X-MEDIA

被用来在PlayList中表示相同内容的不用语种/译文的版本,比如可以通过使用3个这种tag表示3中不用语音的音频,或者用2个这个tag表示不同角度的video在PlayLists中。这个标签是独立存在的,属性包含:

  URI:如果没有,则表示这个tag描述的可选择版本在主PlayList的EXT-X-STREAM-INF中存在;

  TYPE:AUDIO and VIDEO;

  GROUP-ID:具有相同ID的MEDIAtag,组成一组样式;

  LANGUAGE:确定使用的主要语言

  NAME:人类可读的语言的翻译

  DEFAULT:YES或是NO,默认是No,如果是YES,则客户端会以这种选项来播放,除非用户自己进行选择。

  AUTOSELECT:YES或是NO,默认是No,如果是YES,则客户端会根据当前播放环境来进行选择(用户没有根据自己偏好进行选择的前提下)。

#EXT-X-STREAM-INF

指定一个包含多媒体信息的 media URI 作为PlayList,一般做M3U8的嵌套使用,它只对紧跟后面的URI有效,格式如下:#EXT-X-STREAM-INF:有以下属性:

BANDWIDTH:带宽,必须有。

PROGRAM-ID:该值是一个十进制整数,惟一地标识一个在PlayList文件范围内的特定的描述。一个PlayList 文件中可能包含多个有相同ID的此tag。

CODECS:不是必须的。

RESOLUTION:分辨率。

AUDIO:这个值必须和AUDIO类别的“EXT-X-MEDIA”标签中“GROUP-ID”属性值相匹配。

VIDEO:同上

参考文档:

http://blog.csdn.net/jwzhangjie/article/details/9744027

http://www.xuebuyuan.com/1726264.html

--------EOF--
上述的内容中有几个标签是必须 的
1、#EXTM3U
2、#EXT-X-TARGETDURATION:10,这个好象一定要是整型。否则可能会认不出
3、#EXTINF:8, 这个数字就是下面一行视频对应的时间长度,可以是浮点型
4、#EXT-X-ENDLIST ,如果是直播这个可以不要,否则还是留着吧
 
本来我是用PHP+Ngx_http_mp4_module来生成的。直接将视频处理成start=? &end =?,然而看起来很美,这些数据可能会破会源文件,导致在实际播放的时候会不正常,直接就卡住,看浏览器的网络管理中会发现,文件读取失败。
所以最终没办法,只有靠ffmpeg进行文件切割。这时候就相对能看得出了。即使你约定按20秒切分,切出来的文件也是不一样的大小的,而且时长还真不能保证都一样是20s,果然 所谓的无损分割是有讲究的。这里就不深究了。
换成m3u8后,配合ngx_http_accesskey_module可以做一些简单的鉴权。防盗链吧。
总算还好。最终还算是搞定了。做个笔记
 

Tags: m3u8

show一个Uber该死的BUG

自从升到IOS正式版后,Uber就再也不能用了。为咩?原来是这货的一个BUG(也可能不是,就纯粹是为了炫耀效果也未必)

 
如果你的手机性能不佳,你可能关闭了那个动态效果,然而uber的这个bug就是。。。你如果关了动态效果,你就不能叫车,因此如果你发现uber其他功能正常,但就是不能叫车。
这时候你进:设置->通用->辅助功能->将减弱动态效果关闭
 
再退出uber重进,你能发现又可以开始叫车了。
 

记录点月饼事件(存档)

起因,不说了,后来知乎上有人创建了一条:https://www.zhihu.com/question/50600301

接连补充了4条,不排除未来还有
  1. 补充:不是利用漏洞,是几个程序员写了个js脚本抢购月饼,并且最后并没有付款。(劝退的这五个员工都是做安全相关的,不是做开发的。)
  2. 补充:参与此事的第六人观点:如何看待阿里巴巴安全部门的月饼事件? - 匿名用户的回答
  3. 补充:阿里官方回应:阿里官方回应“月饼事件”:这不是一个容易做出的决定
  4. 补充:据阿里巴巴官方消息,涉事五人全部被劝退,包括阿里云安全的第五个员工。

背景介绍:
阿里集团中秋前夕,会给每个人一盒月饼,如果需要多买的话需要提前一个月预定,这样在制作月饼时,就会根据预定的数量,增加定制的月饼数,对于个人来说,这个预定可以是无上限的,但是错过预定时间就没有了。所以到中秋前发月饼时,有的同学就会“求之前有预定的同学转让”。原价59元一盒,据说内网已经炒到200元一盒。

从前两天开始,开始把剩余的月饼拿出来秒杀,一人限购3盒。第一轮900多盒月饼10秒钟左右全部被人购买一空。后面几轮也是一下子结束了。于是有不甘心的同学们去翻秒杀记录,发现有四位同学是在短时间内,一次秒杀超过9盒,就是安全部的同学。
 
接着,就有人在内网提出质疑,爆发了舆论接着秒杀的当事人发帖道歉,说自己是想测试一下秒杀脚本,没想到脚本会导致购买行为异常,所以才抢了这么多月饼。(据当事人发帖自述”在内网发帖前打电话和行政备案过“),目前网上流传的消息是这四位同学,最少的秒杀了9盒,最多的秒杀了66盒。

注:根据网易新闻对此事件的报道,以上五位当事人是被劝退,而并非被开除。
 
-------------
然后就出现各种评论(有几个没来得及保存,被知乎屏蔽了,真是的)
这一条评论:https://www.zhihu.com/question/50600301/answer/121796153 禁止转载,我自己截了个图,就不放出来了
 
上面的各类文章还是自己去看吧。
 
-------------
过了两天,吴军博士出来洗地了:http://weibo.com/2887339314/E8n2SAaJX?type=repost
内容详情为:
http://weibo.com/2887339314/E8n2SAaJX?type=repost
  1. 关于阿里月饼事件,俺不评论曲直,只是讲讲正规的公司会怎么做。一句话,开除无商量,Google和腾讯都是这么做的,我看到不止一个人因为更小的事情从这两家公司被开除的。Facebook里有员工带人参观,一小时收了25美元,不仅开除,而且FBI还卷入调查,生怕参观者有什么背景。大公司管人其实很松,但是进入职场的人就需要把自己当成年人看待了。公司不让做的事情,一定不能做,哪怕是小事。大公司最忌讳耍小聪明。公司没说清楚的事情,能不能做一定要问老板,不是说没有事先定规则就可以做,英特尔有人参加会议做讲座,忘了让老板过目PPT,都是已经发表的东西,照样卷铺盖走人。谁要是对他们不服,一来可以不去这些公司。不过有人心存这种想法的话,就是这些人和大公司创始人之间的差距了。大公司之所以能成为大公司,有他的原因,不理解,说明管理水平和情商都得提高。  
  2. "程序员刷单抢月饼  
后续还有更新:http://weibo.com/2887339314/E8np1bb4r
XML/HTML代码
  1. 我写了那么多,很多人好像还是没看懂。也不用和我争了,我也不是你们的老板。仔细想想为什么那些公司那么多规矩,如果还是想不通,看来你一时间成不了大老板,如果自己办公司,还持有这种想法会被下面的人给卖了。公司技术上出了问题可以弥补,管理出了问题就没救了。  
然后,知乎上就出现了:如何看待吴军对阿里月饼事件的评论?
https://www.zhihu.com/question/50701146 (吴军博士认为收费带人进公司是比内网抢月饼更小的事是一种什么价值观?
其中,贺师俊写的特别多,思想最复杂。
作者没有设置禁止转载,所以。。。
  1. 作者:贺师俊  
  2. 链接:https://www.zhihu.com/question/50701146/answer/122306918  
  3. 来源:知乎  
  4. 著作权归作者所有,转载请联系作者获得授权。  
  5.   
  6. 我必须说,吴军博士的这个微博,行文风格相当的,阴险。是的,我就是说阴险。  
  7.   
  8. 注意,我讲的是行文风格阴险,不是说吴军博士本人阴险。这是两码事。我不认识吴军博士,也没怎么读过他写的书。只凭几段文字,是完全没有资格对一个人的人品评头论足的。不过行文风格,只是就文字论文字而已——所谓行文风格阴险,就是运用了各种文字技巧,但不是为了引导读者更好的理解,而是处处埋坑,干扰正常的思维逻辑。  
  9.   
  10. 吴军博士这个微博,开始先说“不评论曲直”,摆了中立之姿,下面写的东西呢,你仔细推敲,会发现,好像确实没有直接评论曲直哦!但是正常人读下来,都会接受到暗示,就是那5个人“没有把自己当成年人看待”,做了“公司不让做的事情”、“耍小聪明”。  
  11.   
  12. 有些读者比较警惕,那5个人的行为是不是“公司不让做”,存疑啊?咳,吴军博士等着你呢——“没说清楚的事,一定要问老板”——没说不能做,也不代表能做——这一下子就让老板(以及吴军博士自己)立于不败之地了哦。  
  13.   
  14. 吴军博士上来还说“正规公司”,然后说“开除无商量”,并举例证明。一个是facebook带人参观,另一个是intel参加会议没过目ppt。不幸的是,如果稍微动下脑子,这两个例子都完全对应不上月饼事件。  
  15.   
  16. facebook这个事情大家可能都已经听说过了,也是题主提问的事情,利用带人参观公司来敛财,这事情能比抢个月饼的购买权还小?只要有基本判断力,都会认可这两件事情的性质差远了。facebook这事,利用公司资源牟利,且可能败坏公司声誉,危害公司信息安全。月饼这事,那5个人利用公司资源牟利了?败坏公司声誉了?(本来是内部事情,外面都不知道,反而是开人之后变成公关事件导致影响公司声誉。)危害公司信息安全了?  
  17.   
  18. intel的事情,具体细节不清楚,但至少,出去讲涉及公司的东西要经过公司审核,这是intel这种级别的公司一定有的流程。没走这个流程,就制度上说,开除是符合制度的。当然,是否一定要开除?那肯定是未必。所以吴军博士特地说了是“已经发表的东西”,说明是冤的,但冤也没用,照样开除。吴军博士这个例子的意思是,别比冤,人家intel的跟你一样(或比你还)冤呢。但是比较下月饼事件就可以发现,没有制度要求不能用自动化脚本抢公司对内的秒杀/抢购活动啊,而且一个是外部的,一个是内部的,风险性质完全不可比。最关键的,intel这个case就一定是合理的吗?为什么就不可能是大公司里故意给人穿小鞋的反面例子呢?但是吴军博士上手就说这是“正规公司”的做法,通过把一个本来存疑的例子借着并没有论证过的预设(“正规公司”隐含着行为也是正确的)来合理化,并借此来论证另一个(其实并不相同的)case的合理性?如此薄弱的逻辑链条居然说得那么理直气壮,您玩得真溜。  
  19.   
  20. 这里我要批评一下tinyfool,在本题下的回答有给吴军博士洗地之嫌——“后面的例子,不一定就是他认为更小的事情。”的确,是有这个可能,但是正常行文逻辑不是这样的。  
  21.   
  22. 这里我就要说一下这个行文的不寻常(阴险)处了。我要提醒tinyfool和其他读者注意一个细节,吴军博士说google和腾讯都是这么做(开除无商量),还说有“更小的事情”的例子;但是举例却不是google和腾讯的。这招高!如果他说的是google和腾讯的例子,那所有人都会认定你下面讲的一定是“更小的事情”,这样的话,是万万不可能有任何可洗余地的。  
  23.   
  24. 另一方面,吴军博士如果说google和腾讯的例子,那是他呆过的公司,说出话来要负责的。而facebook和intel,都是听说的嘛,就算将来有偏差也不是他的责任嘛。  
  25.   
  26. 另一方面,吴军博士如果说google和腾讯的例子,那是他呆过的公司,说出话来要负责的。而facebook和intel,都是听说的嘛,就算将来有偏差也不是他的责任嘛。  
  27.   
  28. 另一方面,吴军博士如果说google和腾讯的例子,那是他呆过的公司,说出话来要负责的。而facebook和intel,都是听说的嘛,就算将来有偏差也不是他的责任嘛。  
  29.   
  30.   
  31. 下面,“谁要是对他们不服,可以不去这些公司”。这里的“不服”用得妙(阴险至极)啊!!用得妙(阴险至极)啊!!妙(阴险至极)啊!!妙!!!  
  32.   
  33. 正常来说,读者在这个事情上的意见是,认为他们的做法不合理,对待员工不公平。但是用“不服”这个一下子就改变了情感,不是一个客观冷静的词了,而是斗气(不服气),是对抗(不服管),是胡搅蛮缠(不服输)。另外,“服”/“不服”,不是一个讲道理的行为,而是纯粹一个实力比较。比如说,这个事件上,我指责阿里,但你要问我服不服一个改变了整个中国甚至整个世界的商业帝国阿里,服不服这个帝国的缔造者和太上皇马云爸爸,我他妈有资格不服吗???我要是说我就是不服,也就只有被吃瓜群众讥笑脑子有病的份吧。  
  34.   
  35. 后面“可以不去这个公司”更是一下子把旁观身份转换为当事身份。身在阿里的那些程序员自不用说,我只听见赤裸裸的嘲笑,你不服,你有种不要呆在阿里啊?而不在阿里的那些程序员,你不服,你有种永远不要接阿里offer啊……我也仿佛看到吃瓜群众也纷纷点头,是啊,是啊,你们自己没骨气……这种身份转换悄然的把解决问题的责任也转换到了程序员和所有支持者一方,把公司责任撇得一干二净。哦对了,按前面的说法,你们可以不去的公司,也包括google包括腾讯包括facebook包括intel,包括所有的“正规公司”!!!  
  36.   
  37. 当然,说不定有耿直之士表示,好,我就是不去大公司了!我自己创业行不行?吴军博士岂能让你如意?马上就说“心存这样的想法”就是“和大公司创始人之间的差距”。我擦,碾压啊,就算你是成功的创业者,就算你完成了赚一个亿的小目标,只要你不是BAT、FLAG规模的大公司,就是有差距啊。  
  38.   
  39. “大公司之所以能成为大公司,有他的原因,不理解,说明管理水平和情商都得提高。”  
  40. 最后一句就不用分析了。反正,怎么分析,只要跟吴军博士理解得不一样,你们的水平都还需要提高。这个坑简直是黑洞级别的,有完全资格能反驳他的人,这个世界上不会超过100个(科技大公司的创始人)。所以后续的微博开门就说:“我写了那么多,很多人好像还是没看懂……如果还是想不通,看来你一时间成不了大老板。”  
  41.   
  42. 说到这里,隐藏在阴险行文下的,本题所问的吴军博士的价值观也就呼之欲出了,简单说,就是大公司都是对的,大公司的管理者做一切都是对的,他吴军博士讲的都是对的。  
  43.   
  44. Over.  
 
最后终于出现了:https://www.zhihu.com/question/50659896 (如何看待阿里「月饼门」中最后一人(第五人)也被开除?
 
不知道事情最后是怎样的发酵也不知道最后又是怎么样,反正这些人该劝退已劝退,也许未来还能走的更好,也希望他们能够走的更好,不然的话,那些HR还能跳出来说,你看我就知道他们价值观有问题,所以我们有眼光,做了一些当时看起来得罪人心的事情,这也证明我们高瞻远瞩。
 
 
 

整理服务器的时候误删一个目录

在整理服务器的时候误删一个目录,这回是想哭也哭不出了!

还好代码在本地有备份,算算也是3年前的代码了。没有了就没有了吧。有空重写一份~~~
 
正好也算是逼着我迁到国内来。也算是换个角度安慰一下自己吧

服务器升级到PHP5.6了

经过很长时间的思量,最后将服务器升到了PHP5.6,不敢升到PHP7,原因就是到了7后“mysql_*”函数彻底没有了,一些老项目,实在不想这么折腾的去移植,忍忍了!

好在5.6 + opcache ,这个性能其实不低。再加上linode目前也是4G内存了。还有什么不能折腾的呢?

XML/HTML代码
  1. free -m  
  2.              total       used       free     shared    buffers     cached  
  3. Mem:          3950       3867         83          0        470       2616  
  4. -/+ buffers/cache:        780       3170  
  5. Swap:          511         18        493  
就这样吧