云存储应用场景全总结 – 音视频篇

七牛目前已服务超过15万家用户,这些用户的应用场景也各有不同,其中最典型的应用场景可以分为三大类:音视频应用场景、图片应用场景及App分发类应用场景。我们希望通过对这些场景的全面解析的系列文章,可以帮助开发者们减少在云服务使用过程中的弯路。



这个系列先以音视频作为开篇的原因是,从七牛平台,我们看到了这个场景的巨大潜力。同时也相信,视频元年即将到来。



音视频类场景有个通用特点:对播放的流畅度要求高,对音视频处理的需求也比较旺盛。并且音视频的处理参数远多于图片,所以应用场景复杂度也是很高的。在本文中将从两种类型去总结。



一、音视频点播类应用





音视频点播资源来源主要有UGC的数据和客户服务端直接上传的数据,这类应用一般会关注下面几点。


4672CD39-2ADE-4A4E-B2C6-3D0B25D92CD88A3CA1E4-E4BF-44B4-AB08-95EA94616140


1. 音视频支持转码的格式以及转码处理的触发场景


七牛用于音视频处理使用的库是[FFMPEG],基本上常见的音视频格式七牛都支持。触发的场景可以是音视频上传后立即进行转码操作,也可以是通过七牛的[pfop接口]对已有的资源进行处理。



2. 针对UGC的数据上传的框架以及上传的速度


与图片类应用不同,音视频的文件通常比较大,所以建议使用七牛提供的[断点续上传接口]来保证上传的速度和稳定性。



3. 是否支持对音视频的直接播放


对音视频播放的支持依赖于播放器,包括网页端播放器和移动端播放器,原则上,只要播放器支持,那么存储在七牛的音视频资源就能直接播放。虽然播放器并不是七牛的业务,但是我们还是推荐两款优秀的在线播放器JW Player和Sewise Player。



4. 音视频在线播放是否流畅


流媒体文件的播放流畅程度主要依赖于CDN的缓存机制,七牛的CDN节点可以提供流媒体类型的文件缓存,保证视频流、音频流在播放时的稳定和流畅。不过还是建议对相同的源音视频转码成多码率的音视频,以保证不同网络状况下的用户都能无障碍访问音视频。针对视频而言,对视频进行[HLS切片]处理是我们推荐的。



5. 音视频私密性和安全性怎么保证


首先,针对所有的资源,用户都可以将资源的空间设置为私有,来保护资源的私密性,保证资源需要带[下载凭证]去访问资源。而对于私有的HLS文件,七牛提供[pm3u8接口]让m3u8索引文件和切片文件保持下载凭证的一致性。另外七牛提供[HLS加密接口],可以满足用户对音视频的加密需求。还有https通道支持防窃听。



下面用七牛的两个客户案例来具体说明下:



美拍


美拍这样的短视频分享类APP,对七牛的需求就是上传稳定性要有保证,下载播放体验也要有保证。美拍目前对七牛的使用以及诉求可以概括为:


1. 上传。需要保证上传的稳定性,由于七牛不限制任何用户的上传带宽,所以上传的限制会出现在七牛的客户这边,所以在正常情况下,美拍长时间持续大量并发上传并不降低美拍的服务体验。


2. 视频播放的流畅性。在多终端、多网络情况下,经过七牛CDN加速的美拍视频播放体验依然是他的强项,当然视频比较短小也是播放流畅的重要因素,所以建议视频播放站能够考虑七牛提供的[HLS切片服务]。



唱吧


唱吧是七牛平台上非常典型的音频案例。七牛为其提供了一整套的多媒体解决方案,从音频的编解码到流媒体分发,从大规模文件的低成本、高可靠性存储到用户端的上传、下载双向加速。


点播类应用还有一个非常特殊的群体,那就是:在线音频监控。这类群体对实时上传,海量存储,以及方便的空间回收都有非常严格的要求。因为更为复杂,之后我们将用专门的技术结合案例来讲述。



二、音视频直播类应用





直播服务是随着用户量的增加应运而生的,点播服务的稳步发展,必然会催生直播的需求。直播服务包含交互与无交互两种需求,这两种有不同的延时需求。比如足球直播属于无交互的,延时可以在10s左右,而有交互的比如秀场,10s延迟就不能满足。而视频会议这种交互更是需要支持双向通信方式。七牛的直播服务已经在一些客户的生产环境中得到了应用。经过实践,这类产品一般初期会关注下面几点。



1. 直播服务需要用户自己提供硬件还是七牛提供硬件。


七牛支持RTMP推流, RTMP和HLS取流,有camera-sdk和player-sdk,也就是说,七牛既可以使用客户提供的摄像头,并将sdk烧录到摄像头中,那就不用关心推流协议,播放出来的可以是RTMP或者HLS;如果不修改摄像头,那可以直接搭建一台中转服务器接入七牛的API,直接推RTMP。



2. 直播流最多可以支持多少人同时在线


我们会根据客户的需求去调整并发支持的数量,一万路并发和十万路并发都是可以实现的。