资讯专栏INFORMATION COLUMN

Windows 下 IIS + FFmpeg 搭建流媒体服务

willin / 1222人阅读

摘要:研究了网上各种流媒体服务器的架设方案,都要用将源视频进处理成文件之后再供用户访问。但是网上的各种方案,在下搭建流媒体服务,都需要用。

名词解释

先用自己的理解,描述一下什么是流媒体服务:

在访问网络上的普通资源时,通常都需要把资源文件完整下载过来之后才能播放。

比如打开一个网页的时候,对应的 HTML、CSS 和 JS 文件都下载完成之后,页面内容和功能才能完整呈现。

普通的体积小的资源还好,但是如果我要浏览一个几百兆的视频,就必须等视频下载完成才能开始看么?那太不方便了。

于是,就有了流媒体服务。最终呈现出来的效果,是用户可以点击网络视频的任意时间点,就可以直接从这个时间点开始播放,缓冲时间很短,这样是不是很方便?

实现方案

上网查了一下,最开始被各种名词搞懵了,什么 RTMP、HLS,这个那个的,看得人头大。

最后发现,其实自己所要实现的功能,只是把服务器上的视频文件能够以流媒体的效果呈现出来,供用户使用而已。

用户并不关心我在背后用的是什么样的技术,只要最终能够实现点到哪里放哪里的效果就行。

研究了网上各种流媒体服务器的架设方案,都要用 FFmpeg 将源视频进处理成 m3u8 + ts 文件之后再供用户访问。

但是网上的各种方案,在 Windows 下搭建流媒体服务,都需要用 Nginx。为什么不能用原生的 IIS 来提供服务呢?那就试试吧。

于是先在本机下载了 FFmpeg,用下面的命令将视频文件进行处理,然后将处理后的 m3u8 + ts 文件放到服务器上。

ffmpeg.exe -i 01.mp4 video.m3u8 -c:v libx264 -c:a copy -f hls -g 600 -hls_list_size 0

在 IIS 中,对 m3u8 + ts 这两种文件类型设置了 MIME,这样后端服务器才能够正常解析。

在前端页面中,则用到了 hls.js 这个库,专门用于播放 m3u8 文件。

最开始其实用的是 Video.js + 对应插件,但是发现总是会报错,于是用了 hls.js,就不再报错了。

如果用 vue-cli 进行开发的话,还需要对 hls.js 进行配置:

import hlsjs from "hls.js";
...
window.Hls = hlsjs;

这样就可以在 vue-cli 中放心地用 hls.js 了。

参考链接

FFmpeg 编译视频

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/60906.html

相关文章

  • FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为媒体服务器)

    环境介绍 当前使用的操作系统:  win10 64位 一、部署EasyDarwin服务器 据官网介绍,EasyDarwin拥有完整的源代码,可以帮助开发者更快更简单实现流媒体音视频产品功能,使用完全免费;下面就介绍一下EasyDarwin的使用过程。 官网地址: EasyDarwin 开源流媒体服务器 Open Source Streaming Server 如果官网下载速度比较慢,可以在CSD...

    Shihira 评论0 收藏0
  • 快速探索,音视频技术不再神秘

    摘要:顶场与底场采集视频信号时,扫描方式分为逐行扫描与隔行扫描。逐行扫描则是将每帧的所有画面同时显示。在对逐行扫描的视频源进行压缩的方面,比它之前的视频编码标准在性能上有了较大的提升。欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由goo发表于云+社区专栏 与生活紧密相连的音视频,为何有那么多格式?直播、点播以及即时视频其中又有怎样的机制支撑?面对纷繁复杂的音视频知识,应该...

    sunnyxd 评论0 收藏0
  • 使用PHP结合Ffmpeg快速搭建媒体服务实践

    摘要:一背景笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。 一、背景 笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将MP4文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。...

    Drinkey 评论0 收藏0
  • 使用PHP结合Ffmpeg快速搭建媒体服务实践

    摘要:一背景笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。 一、背景 笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将MP4文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。...

    MASAILA 评论0 收藏0
  • CentoS7搭建直播服务

    摘要:搭建直播服务器资源地址推流关于是苹果公司实现的基于的流媒体传输协议,可实现流媒体的直播和点播,相对于常见的流媒体直播协议,例如协议协议协议等,直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。 CentoS7搭建直播服务器 资源地址 nginx-rtmp: https://github.com/arut/nginx... OBS推流: https://ob...

    BlackHole1 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<