nginx反向代理视频流学习
前言
偶然间接触到视频流相关的技术栈,今天做了一个题没有做明白,索性回来研究一下,虽然搞的我也挺头疼的
流媒体
流媒体就是将视频文件分成许多小块儿,将这些小块儿作为数据包通过网络发送出去,实现一边传输视频 数据 包一边观看视频。
常见的视频流协议
视频流的传输依赖于一些标准的协议。每个协议有不同的特点和应用场景。
- HLS(HTTP Live Streaming)
HLS 是由 Apple 开发的一种协议,广泛应用于 Web 和移动设备。它能够自动根据网络情况调整视频质量,支持流媒体点播和直播。
HLS 的一个特点是,它将视频分割成多个小片段,客户端可以逐个片段地下载和播放,这有助于减少延迟和卡顿。
- RTMP(Real-Time Messaging Protocol)
RTMP 是一种较为古老的协议,但仍然广泛用于低延迟的直播场景。它可以在直播过程中保证较低的延迟,因此被广泛应用于直播平台如 Twitch 和 YouTube Live。
RTMP 的一个缺点是它的兼容性差,不能直接在大多数移动设备的浏览器中使用,需要特定的播放器或插件支持。
- DASH(Dynamic Adaptive Streaming over HTTP)
DASH 是一种类似 HLS 的协议,支持自适应比特率流,并且可以跨平台工作。它支持多种视频编码格式,适用于更广泛的设备和网络环境。
例如,当你用手机观看 4K 视频时,DASH 会根据你的网络速度自动调整视频质量,避免出现卡顿。
- WebRTC(Web Real-Time Communication)
WebRTC 是一种点对点通信协议,适用于实时视频通话和互动。它的延迟非常低,通常用于视频会议和社交平台的实时视频聊天。
例如,Zoom 和 Google Meet 都采用 WebRTC 技术来提供高质量的视频会议体验。
视频流的应用场景
视频流技术在许多场景中都有广泛应用:
视频点播:例如 YouTube 等平台,用户可以选择任何内容观看。
直播:如体育赛事、新闻直播、游戏直播等。
远程会议:Zoom、Teams 等平台允许全球各地的人实时参加视频会议。
视频监控:如家庭或公司安防系统,实时监控视频流可以帮助保护财产安全。
什么是HLS
HLS的工作方式是:将视频拆分成若干ts格式的小文件,通过m3u8格式的索引文件对这些ts小文件建立索引。一般10秒一个ts文件,播放器连接m3u8文件播放,当快进时通过m3u8即可找到对应的索引文件,并去下载对应的ts文件,从而实现快进、快退以近实时 的方式播放视频。
IOS、Android设备、及各大浏览器都支持HLS协议。
配置步骤
学习中。。。
学懵了,反向代理的应该没毛病,也不知道是不是源站设限制了,一直卡404😡有点红温了
有没有能配明白的老铁交流一下
打算自己搭一个nginx+ffmpeg的HLS(m3u8)推流源站代理一下试试了🤦♂️
加油!加油!一起学习୧(๑•̀⌄•́๑)૭