WS-FLV直播协议分析

这篇具有很好参考价值的文章主要介绍了WS-FLV直播协议分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、简介

        ws-flv(websocket-flv)是一种直播协议,其基于WebSocket来传输FLV格式的音视频。可以用来替代rtmp,解决其需要浏览器端依赖flash的问题;替代http-flv,解决浏览器同域名请求的最大并发数限制导致的浏览器只能播放6路http-flv流的问题。

二、通过网页播放器播放ws-flv

        开源流媒体服务器ZLMediaKit支持ws-flv,按照《windows下编译ZLMediaKit》编译运行ZLMediaKit,ZLMediaKit所在电脑的ip为172.16.17.154。

推流端执行命令:

./ffmpeg -re -i video.mp4 -vcodec copy -acodec aac -f flv rtmp://172.16.17.154/live/test1

转出来的rtmp流 url为rtmp://172.16.17.154/live/test1,这里ZLMediaKit会把rtmp转协议为ws-flv,根据播放url规则 ,ws-flv直播后缀改成了.live.flv,我 配置的ZLMediaKit的http服务器监听端口为30000,所以ws-flv url为 ws://172.16.17.154:30000/live/test1.live.flv

flv.js支持ws-flv,可以用其官方的例子播放。浏览器所在电脑的ip为192.168.16.13

WS-FLV直播协议分析,音视频技术,websocket

三、抓包分析ws-flv

对播放的过程进行抓包,可以看到ws-flv本质上也是WebSocket,其复用了HTTP的握手通道,客户端(播放端)通过HTTP请求与WebSocket服务端(ZLMediaKit)协商升级协议。协议升级完成后,后续的数据(音视频数据)交换则遵照WebSocket的协议

WS-FLV直播协议分析,音视频技术,websocket

WS-FLV直播协议分析,音视频技术,websocket

直播产生的视频和音频,属于流数据,是一帧一帧的,本质就是二进制数据,通过websocket传输(Opcode的值是%x2:表示这是一个二进制帧)

WS-FLV直播协议分析,音视频技术,websocket

四、停止播放分析

        当用户主动关闭网页播放器时,播放端(客户端)会向ZLMediaKit(服务器)发送"WebSocket Connection Close",然后播放端会主动发起TCP四次挥手。

WS-FLV直播协议分析,音视频技术,websocket

WS-FLV直播协议分析,音视频技术,websocket

如果是因为推流端停止推流导致播放中断了,则流媒体服务器会主动发起TCP四次挥手。

WS-FLV直播协议分析,音视频技术,websocket

之前项目中我们遇到一个问题,ws-flv长时间播放时,网页会偶发停止播放。为了验证是网页播放器还是流媒体服务器/推流端的问题,我们进行抓包。结果发现是网页发送了"WebSocket Connection Close"导致停止了播放。所以我们可以根据上述依据进行判断。

五、参考

《【视频直播篇一】入门篇》

《历时数月钻研推流/对比各种流媒体服务程序/PK总结》

《用一个 flv.js 播放监控的例子,带你深撅直播流技术》

《HTTP-FLV 和 WebSocket-FLV有什么区别?》

《WebSocket协议:5分钟从入门到精通》

《websocket connection is closing automatically》

《[技术咨询]使用ws协议播放flv连接断线 #854》

《websocket client 主动关闭》

《小程序退到后台能不能继续保持websocket连接?》文章来源地址https://www.toymoban.com/news/detail-727842.html

到了这里,关于WS-FLV直播协议分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 从零搭建自己的公网RTSP、RTMP、FLV、HLS、WS-FLV、WS-RTSP流媒体服务器解决方案

    从零搭建自己的公网RTSP、RTMP、FLV、HLS、WS-FLV、WS-RTSP流媒体服务器解决方案

    环境准备 操作系统: 内存:2G以上 CPU: 双核2.0GHz以上 下载并安装SkeyeVSS综合安防视频云流媒体服务 下载SkeyeVSS 下载地址:http://www.openskeye.cn/download/vss.html?id=c24a0a06-6d38-45a5-8623-a1fa3f406ab1 安装SkeyeVSS Windows系统安装 双击下载的windows平台SkeyeVSS_Server_Setup_Vx.x.xx_buildxxxxxxxx.exe安装包

    2023年04月17日
    浏览(14)
  • 音视频直播核心技术

    音视频直播核心技术

    采集: 是视频直播开始的第一个环节,用户可以通过不同的终端采集视频,比如 iOS、Android、Mac、Windows 等。 前处理: 主要就是美颜美型技术,以及还有加水印、模糊、去噪、滤镜等图像处理技术等等。 编码: 就是音视频数据的压缩,便于传输,一般有软编码和硬编码,软

    2024年01月20日
    浏览(14)
  • 音视频FAQ(一):视频直播卡顿

    音视频FAQ(一):视频直播卡顿

    本文介绍了视频直播卡顿的四个主要原因,用户网络问题、用户设备性能问题、技术路线的选择和实现问题。因本文主要阐述视频直播的卡顿,故技术路线的实现指的是:CDN供应商的实现问题,包含CDN性能不足、CDN地区覆盖不足。对于每个原因,提供了初步判断和进一步诊断

    2024年02月12日
    浏览(12)
  • Java工程使用ffmpeg进行音视频格式转换(ws.schild)

    JAVE (Java Audio Video Encoder)是一个纯Java的音视频编码器和解码器库,它是基于FFmpeg。JAVE库提供了一些简单易用的API,用于音频和视频格式的转换、编码、解码等操作。它对于一些基本的音视频处理任务来说是一个不错的选择。 这些库都是基于FFmpeg的,并允许在Java中处理音频和

    2024年02月14日
    浏览(314)
  • WebRTC音视频通话-RTC直播本地视频及相册视频文件

    WebRTC音视频通话-RTC直播本地视频及相册视频文件

    WebRTC音视频通话-RTC直播本地视频及相册视频文件 WebRTC音视频通话-RTC直播本地视频文件效果图如下 WebRTC音视频通话-RTC直播本地视频文件时候,用到了AVPlayer、CADisplayLink。 AVPlayer是什么? AVPlayer是基于AVFoundation框架的一个类,很接近底层,灵活性强,可以自定义视频播放样式

    2024年02月13日
    浏览(18)
  • WebRTC | 音视频直播客户端框架

    WebRTC | 音视频直播客户端框架

            端到端通信互动技术可分解为以下几个技术难点:客户端技术、服务器技术、全球设备网络适配技术和通信互动质量监控与展示技术。         音视频直播可分成两条技术路线:一条是以音视频会议为代表的实时互动直播;另一条是以娱乐直播为代表的流媒体

    2024年02月14日
    浏览(13)
  • 音视频八股文(9)-- flv的h264六层结构和aac六层结构

    音视频八股文(9)-- flv的h264六层结构和aac六层结构

    FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式,由于其封装后的⾳视频⽂件体积⼩、封装简单等特点,⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和 ⽂件体(file Body)组成。其中,FLV

    2024年02月01日
    浏览(13)
  • WebRTC技术文档 -- 1.音视频直播(笔记)

    WebRTC技术文档 -- 1.音视频直播(笔记)

    1.1 两条技术路线 1.1.1 以音视频会议为代表的实时互动直播 互动直播主要解决音视频远程交流问题,实时性较强,时延一般低于500ms。 1.1.2 以娱乐直播为代表的流媒体分发 娱乐直播主要解决音视频大规模分发问题,实时性较差,时延一般在3s以上。 1.2 直播技术 WebRTC用于实时

    2024年02月22日
    浏览(14)
  • 音视频 ffmpeg命令直播拉流推流

    对于不是rtmp的协议 -c copy要谨慎使用 参数:-re,表示按时间戳读取文件 参考:Nginx搭建rtmp流媒体服务器(Ubuntu 16.04)https://www.jianshu.com/p/16741e363a77 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/

    2024年02月10日
    浏览(16)
  • 世界杯直播 | 抖音视频编码器优化

    世界杯直播 | 抖音视频编码器优化

    动手点关注 干货不迷路 对于世界杯这样的大型体育赛事而言,视频编码算法既要在高速运动、复杂纹理的场景下确保直播内容的清晰度和流畅度,保障用户的观赛体验,又要兼顾码率、延迟等对网络传输层面尤为敏感的指标。 另外,抖音实现了业界首次的世界杯比赛支持

    2023年04月09日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包