作者:蒲小花
链接: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视频直播流问题相关推荐

  1. VLC插件在浏览器下(IE11)实现播放rtsp视频直播流

    VLC插件 最近项目用到需要在浏览器上播放视频流,尝试了很多种方式去解决,包括使用ffmpeg转码成rtmp播放,websocket结合webrtc等方式,但是效果都不是很好,而且存在一定的丢包和搭设 ...

  2. 网页视频直播流-ffmpeg-kurento

    视频直播流(摄像头之类的) ​ 一直以来没有做过页面播放直播的连接,都是播放一些用户上传的固定视频之类的,现有的video标签基本就能满足需求.但是遇到直播的连接的时候,需要一些插件进行解码辅助才能进 ...

  3. 解决m3u8视频合并问题

    解决m3u8视频合并问题 参考文章: (1)解决m3u8视频合并问题 (2)https://www.cnblogs.com/jinfanfu/p/10817818.html (3)https://ww ...

  4. 网页直播/点播播放器支持WebRTC/http-flv/rtmp/m3u8等直播流播放

    H5播放器 H5直播/点播播放器,使用简单,功能强大 支持WebRTC播放; 支持MP4播放; 支持m3u8/HLS播放; 支持HTTP-FLV/WS-FLV播放; 支持RTMP播放; 支持直播和点播 ...

  5. vue实现rtsp视频直播流

    实现摄像头的直播功能其实有许多方案,像是安装vlc插件.rtsp转rtmp然后使用videojs通过flash播放rtmp**(由于chrome已经不使用flash所以放弃使用videojs,并且vi ...

  6. 【视频直播流】vue flv视频直播流 flv rtmp vue 直播视频流

    一.[rtmp视频流] 要点:主要是使用vue-video-player进行播放.要注意,这种播放方式需要flash播放器,遗憾的是很多浏览器已经不再支持flash播放器,如果是这样建议直接看下边第二 ...

  7. LiveNVR视频流媒体服务器软件支持配置通道视频宽、视频高、视频码率降低码流输出视频直播流

    支持通道配置支持配置备注标记通道的额外信息 1.通道编辑 2.显示高级配置 3.配置视频宽.视频高.视频码率 4.RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1.通道编辑 2.显示高级 ...

  8. 【技能教学】如何通过FFMPEG编码推RTSP视频直播流到EasyDarwin开源平台时叠加时间水印?

    继之前一篇科普文<如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台>发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在 ...

  9. 如何通过FFMPEG编码推RTSP视频直播流到EasyDarwin开源平台时叠加时间水印?

    继之前一篇科普文<如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台>发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在 ...

最新文章

  1. Python 将数据框类型转为字典类型
  2. Allegro禁布区打过孔或走线消除DRC错误
  3. 如何在不支付Adobe Photoshop费用的情况下处理Camera Raw
  4. 获取Windows 系统的内核变量
  5. 软件工程实践2017结对第二次作业
  6. Python中的顺序表介绍
  7. ubuntu系统编译sh出错 默认dash不是bash
  8. 使用自定义函数替代Linux rm命令
  9. stc单片机c语言编程软件,stc isp官方下载-STC单片机ISP下载编程软件下载v6.85i 官方最新版-西西软件下载...
  10. 2019谷歌开发者大会
  11. 易经六十四卦对照与简单实现卦象操作
  12. 当极客 (Geek) 遇到呆瓜 (Nerd)
  13. 计算机的四屏故障维修,计算机应用之显卡故障维修技巧
  14. UnityEffects(3)之闪电链
  15. Linux中使用grep -v grep 查找不含有 grep 字段的行
  16. 树的重心——DFS求解
  17. HTML 标签列表(字母排序)
  18. 30行Python代码实现自动收发邮件
  19. 个性推荐系统基于元学习的场景化 | KDD 2019
  20. ubuntu 22 下显示器分辨率自定义问题xrandr

热门文章

  1. Linux - grep -正则表达式
  2. Unity 陀螺仪使用案例 - 仿崩坏3的UI 动效
  3. 敏捷个人2013.06月份户外活动报道:奥森健步读书分享会
  4. FinePrint.PdfFactory.Pro.v3.51.Incl.Keymaker-ZWT
  5. Linux下Socket TCP编程
  6. Java学习 第十六天(泛型)
  7. VB.net ComAddin从零开发,跟我一起造轮子,嗨起来
  8. 使用JS解决TextArea换行失效
  9. 2011最新《呼啸山庄/咆哮山庄》720p.BD中英双字幕
  10. 2021年G2电站锅炉司炉考试题库及G2电站锅炉司炉找解析