名词解释
先用自己的理解,描述一下什么是流媒体服务:
在访问网络上的普通资源时,通常都需要把资源文件完整下载过来之后才能播放。
比如打开一个网页的时候,对应的 HTML、CSS 和 JS 文件都下载完成之后,页面内容和功能才能完整呈现。
普通的体积小的资源还好,但是如果我要浏览一个几百兆的视频,就必须等视频下载完成才能开始看么?那太不方便了。
于是,就有了流媒体服务。最终呈现出来的效果,是用户可以点击网络视频的任意时间点,就可以直接从这个时间点开始播放,缓冲时间很短,这样是不是很方便?
实现方案
上网查了一下,最开始被各种名词搞懵了,什么 RTMP、HLS,这个那个的,看得人头大。
最后发现,其实自己所要实现的功能,只是把服务器上的视频文件能够以流媒体的效果呈现出来,供用户使用而已。
用户并不关心我在背后用的是什么样的技术,只要最终能够实现点到哪里放哪里的效果就行。
研究了网上各种流媒体服务器的架设方案,都要用 FFmpeg 将源视频进处理成 m3u8
+ ts
文件之后再供用户访问。
但是网上的各种方案,在 Windows 下搭建流媒体服务,都需要用 Nginx。为什么不能用原生的 IIS 来提供服务呢?那就试试吧。
于是先在本机下载了 FFmpeg,用下面的命令将视频文件进行处理,然后将处理后的 m3u8
+ ts
文件放到服务器上。