SRS3从2017.01月春节开始支持MPEG-DASH,2月份后支持了DVR MP4,3月份支持了MPD和init.mp4,5月份支持了MP4 Parser CLI,6月份支持了fMP4切片,可惜最终没有和JS播放器调通以实验性功能发布。
MPEG-DASH在国外用来替代HLS和RTMP,当然也用来替代HTTP-FLV,比如YouTube就有DASH的播放器,实际上DASH在Chrome中是属于MSE的播放器。不管有没有真正达到目标,DASH反正是作为一个标准存在了。
SRS3折腾DASH费了很久,主要DASH本身的标准都说得含糊不清,MPD按照标准的协议来写,发现DASH Player竟然播放不了,也无语了。还是按照一个实例的流写的MPD、init.mp4和fMP4。
如果你对DASH感兴趣,可以点原文链接,里面详细描述了SRS3如何切DASH,如何用在线的js播放器播放DASH,不过可惜是播放器会DECODE ERROR,没有说明详细的错误,所以我也只能等熟悉播放器的大神来指出到底什么地方出了问题,SRS3录制的MP4是能用VLC播放的,所以MP4部分应该是没有问题的,搞不好是哪个地方出错了。请原谅我时间真的有限,不能花大量时间看DASH的js播放器,只能把这个问题抛出来了。
这是为何SRS3以实验性Experimental功能方式发布MPEG-DASH的原因,离上线应用还很早,还需要大家的PR支持。所谓PR就是给SRS提交代码,解决这些问题的意思,是PullRequest的简写。
对于我来说,MPEG-DASH的意义不在于是否能真正商用,而是开启了MP4的一扇门。比如DVR成MP4文件,要知道以前SRS,包括NGINX也只能录制成FLV文件,还需要调用一次转码才能把FLV转成MP4。另外SRS提供的MP4 Parser,能详细的列出box的信息,对于分析MP4文件比较管用。不过对于不能解析的BOX,parser会失败,所以欢迎PR。
由于本屌丝大部分时间都花在了英语的学习,也就是English的学习,因为发现英语达不到母语级别的话,看资料真的很蓝廋,我已经连续学习了233天了,已经听和读已经上了一个台阶,感谢APP英语流利说,我预计还需要1到2年也就是2019年差不多时间能从英语中抽出来,那时候我能支配的时间会多很多,目前这段时间也就够我回应issue和merge PR的,所以欢迎大家给SRS提PR的。
今年我也32岁了,写代码的速度貌似没有降低,所以我尽量把时间花在直接提交代码上面,或者合并PR上,有些PR合并后还需要做点修改的。选择ST无疑是正确的,如果当初没有选择ST,那么同样的时间我解决不了这些问题。但是选择ST还不是最正确的,要浪就要够浪,golang才是云计算最合适的工具,不要小看工具,谁小看工具谁就被工具藐视,要知道计算机也不过是个工具。因此我也会分一部分时间到go-oryx以及go-oryx-lib。
SRS未来会向源站集群发展,解决自建源站的问题。一般源站是内容源头,需要做管控和业务控制,然后走多家CDN分发,这是流媒体最合理的架构。比如用户可以在阿里云购买ECS,然后部署SRS当源站,然后通过阿里云CDN和其他CDN分发内容。SRS解决不了CDN的问题,因为CDN需要的不是一个服务器,而是维护一套系统的团队,就算这个团队选择了SRS,最后也会做私有版本,所以开源的SRS未来在于源站方案,而不是CDN服务器。源站不意味着低性能,实际上SRS还需要做很多架构调整,很多功能比如DVR可以支持云存储,比如转发可以更强大,比如源站可以支持集群,比如HTTP-FLV业务逻辑应该和RTMP一致但是目前有些API只有RTMP有比如踢流,做好这些工作需要很长的时间,这是SRS3的主要任务:Refine(优化和改进)。
除了学英语、维护SRS,大部分的时间都贡献给了阿里云,我在阿里云做更好玩的事情,也欢迎大家来阿里云。很早以前,我在广电行业做流媒体,以为世界上的流媒体都只是网络电视台;后来到了CDN才知道有个更大的市场叫做Content Delivery Network;今年我来到阿里云,才知道有个更大的市场叫做云计算。
在大娱乐泛情色视频圈,一圈比一圈大,可圈可点;服务器线程进程协程浪潮中,一浪比一浪高,要浪就要够浪。