H5解决m3u8视频直播流问题
链接:https://www.zhihu.com/question/21087379/answer/252216119
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
最近接触了这一块,简单说下吧。
m3u8 是一种基于 HTTP Live Streaming 文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成。目前 由 Apple.inc 率先提出的 HLS 协议在 Mac 的 Safari 上原生支持,你可以直接通过
video.src = 'xxx.m3u8'
来实现。
如果你希望兼容所有的浏览器的话, 你需要知道 Chrome 和 Firefox 支持的 Media Source Extensions( 非常不理想,在IE和国内具备兼容模式的极速浏览器下) 的情况:
目前 Youtube 和 Netflix 等主流视频网站,即使 FB 的 newsfeed 里面的视频也采用了 HLS 的解决方案,大致实现流程如下:
其核心,在于对于 m3u8 的文件解析和 通过 XHR 去完成对分片内容二进制文件的获取,然后使用 MSE 的 appendBuffer 去进行 buffer 的封装,然后自己完成合流的工作。
目前国内的,bilibili 最早实现了基于 MSE 解决方案的播放器,大概为什么他们必须用 MSE 而不是 优酷 和 腾讯 的 多 video 方案,可能是钱少,视频转MP4需要大量服务器,当然 MSE 这是技术的趋势。
前面废话太多直接上推荐吧:
优先推荐 video.js 的方案,因为它支持多个播放核心,而且插件非常多,你只需要使用
videojs/videojs-contrib-hls 就可以了。
再安利一个非常纯粹的方案,就是 hls.js 它需要你手进行 video 的绑定。
75 Team 也开源 的一个播放器:Chimeejs/chimee
当然我们 team 也会开源一款类似 youtube 的播放核心。
H5解决m3u8视频直播流问题相关推荐
- VLC插件在浏览器下(IE11)实现播放rtsp视频直播流
VLC插件 最近项目用到需要在浏览器上播放视频流,尝试了很多种方式去解决,包括使用ffmpeg转码成rtmp播放,websocket结合webrtc等方式,但是效果都不是很好,而且存在一定的丢包和搭设 ...
- 网页视频直播流-ffmpeg-kurento
视频直播流(摄像头之类的) 一直以来没有做过页面播放直播的连接,都是播放一些用户上传的固定视频之类的,现有的video标签基本就能满足需求.但是遇到直播的连接的时候,需要一些插件进行解码辅助才能进 ...
- 解决m3u8视频合并问题
解决m3u8视频合并问题 参考文章: (1)解决m3u8视频合并问题 (2)https://www.cnblogs.com/jinfanfu/p/10817818.html (3)https://ww ...
- 网页直播/点播播放器支持WebRTC/http-flv/rtmp/m3u8等直播流播放
H5播放器 H5直播/点播播放器,使用简单,功能强大 支持WebRTC播放; 支持MP4播放; 支持m3u8/HLS播放; 支持HTTP-FLV/WS-FLV播放; 支持RTMP播放; 支持直播和点播 ...
- vue实现rtsp视频直播流
实现摄像头的直播功能其实有许多方案,像是安装vlc插件.rtsp转rtmp然后使用videojs通过flash播放rtmp**(由于chrome已经不使用flash所以放弃使用videojs,并且vi ...
- 【视频直播流】vue flv视频直播流 flv rtmp vue 直播视频流
一.[rtmp视频流] 要点:主要是使用vue-video-player进行播放.要注意,这种播放方式需要flash播放器,遗憾的是很多浏览器已经不再支持flash播放器,如果是这样建议直接看下边第二 ...
- LiveNVR视频流媒体服务器软件支持配置通道视频宽、视频高、视频码率降低码流输出视频直播流
支持通道配置支持配置备注标记通道的额外信息 1.通道编辑 2.显示高级配置 3.配置视频宽.视频高.视频码率 4.RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1.通道编辑 2.显示高级 ...
- 【技能教学】如何通过FFMPEG编码推RTSP视频直播流到EasyDarwin开源平台时叠加时间水印?
继之前一篇科普文<如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台>发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在 ...
- 如何通过FFMPEG编码推RTSP视频直播流到EasyDarwin开源平台时叠加时间水印?
继之前一篇科普文<如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台>发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在 ...
最新文章
- Python 将数据框类型转为字典类型
- Allegro禁布区打过孔或走线消除DRC错误
- 如何在不支付Adobe Photoshop费用的情况下处理Camera Raw
- 获取Windows 系统的内核变量
- 软件工程实践2017结对第二次作业
- Python中的顺序表介绍
- ubuntu系统编译sh出错 默认dash不是bash
- 使用自定义函数替代Linux rm命令
- stc单片机c语言编程软件,stc isp官方下载-STC单片机ISP下载编程软件下载v6.85i 官方最新版-西西软件下载...
- 2019谷歌开发者大会
- 易经六十四卦对照与简单实现卦象操作
- 当极客 (Geek) 遇到呆瓜 (Nerd)
- 计算机的四屏故障维修,计算机应用之显卡故障维修技巧
- UnityEffects(3)之闪电链
- Linux中使用grep -v grep 查找不含有 grep 字段的行
- 树的重心——DFS求解
- HTML 标签列表(字母排序)
- 30行Python代码实现自动收发邮件
- 个性推荐系统基于元学习的场景化 | KDD 2019
- ubuntu 22 下显示器分辨率自定义问题xrandr
热门文章
- Linux - grep -正则表达式
- Unity 陀螺仪使用案例 - 仿崩坏3的UI 动效
- 敏捷个人2013.06月份户外活动报道:奥森健步读书分享会
- FinePrint.PdfFactory.Pro.v3.51.Incl.Keymaker-ZWT
- Linux下Socket TCP编程
- Java学习 第十六天(泛型)
- VB.net ComAddin从零开发,跟我一起造轮子,嗨起来
- 使用JS解决TextArea换行失效
- 2011最新《呼啸山庄/咆哮山庄》720p.BD中英双字幕
- 2021年G2电站锅炉司炉考试题库及G2电站锅炉司炉找解析