使用wireshark抓取bilibili直播的真实地址
来源:互联网 发布:win 10 网络初始化失败 编辑:程序博客网 时间:2024/06/07 07:19
使用wireshark抓取bilibili直播的真实地址
一、 概述
我之前测试过bilibili的直播(主播使用OBS-studio推送),延迟是相当低,大概就是3s-4s延迟,所以猜测网上说的直播客户端使用hls协议播放是不可能的。hls如果是按照5秒切片,那个最少保留3个ts的片段,理想情况不考虑网络的传输都需要15s左右,而且腾讯云直播官网提供数据是hls直播延迟35s左右。我想着这样直播客户端应该是使用rtmp协议来实现的,按照我的猜测,我是用wireshark来抓取包分析之后,发现虽然不是rtmp协议,使用的是http + flv视频容器这种方式。应该是为了http走80端口,方便nginx做负载均衡。虽然后端服务器我不太清楚B站是怎么处理的,我还是把我抓包结果记录出来,让正在做直播的同学参考一下。
二、 准备所需要的环境
1 抓包工具软件 Wireshark-win64-2.0.2.exe
2 电脑播放软件ffmpeg-20140323-git-fc567ac-win64-shared.7z 主要使用ffplay播放器软件(命令行模式)
3 bilibili的手机客户端 4.14.0 播放器是ijkplayer ,在设置-》帮助-》开放源码许可 可以看到详细的使用相关的软件信息
4 就是360免费wifi 为了抓取手机上的包,最好的办法就是使用电脑作为wifi热点,手机连到该热点上,然后通过wireshark抓取该无线网卡的数据包
三、开始抓包
1 首先使用你电脑做为wifi热点,然后手机连接到该wifi热点上。这是必须的
2 打开bilibili的手机客户端,找到直播栏目
3 打开wireshark软件,选择你无线网卡,这里根据你个人电脑情况不同,你可能会看到多个无线网络连接,你自己一个一个试一下,看看是哪个手机发出的数据包?我的是(无线网络连接3 ) 效果如下:
选择无线网络连接3之后,就开始抓包了,这一步你可以根据你自己需要,当你点击播放直播的时候在开始抓包。
4 点击手机上的直播房间,如图:
然后观察wireshark中包分析,这里顺便说一下我之前以为是rtmp协议,所以在过滤的是 port 1935是看不到数据包的。所以我后来干脆没有使用过滤器,然后慢慢分析包的信息的,结果如下图:
5 上图可以看出,这是使用http + flv这种方式的,但是我还是不能确定,事情是不是这样的呢? 我接下来使用ffplay来播放测试该地址、播放命令如下:
直播路径仅供参考使用:http://60.207.246.38/live-play.acgvideo.com/live/398/live_5661153_2011833.flv?wsSecret=128828d624f2e70f9f17853a0dfea88c&wsTime=5752f544&wshc_tag=0&wsts_tag=577a7434&wsid_tag=76f758c1&wsiphost=ipdbm
播放结果如图:
可以看到虽然ffplay很简陋,但是还是直播了该内容,并且和手机是同步播放的。
四、结论
bilibili直播客户端,使用的播放器是ijkplayer,这个是B站开源的播放器,这里一万个赞。然后我测试结果证明了,直播客户端是使用http + flv的模式直播的,不是所谓和hls或者rtmp的。谢谢 联系邮箱845885222@qq.com
- 使用wireshark抓取bilibili直播的真实地址
- BiliBili直播 弹幕信息抓取
- Wireshark抓取网易音乐的下载地址
- Bilibili直播的弹幕数据包解析
- 设置wireshark抓取回环地址
- 使用red5和OBS搞出自己的直播平台来挑战bilibili(B站)
- 使用red5和OBS搞出自己的直播平台来挑战bilibili(B站)
- Qt——仿bilibili直播的调音量控件
- 利用Bilibili的开源库ijkplayer实现视频直播
- 使用wireshark抓取TCP握手
- 如何使用WireShark抓取数据包?
- LZH_IJKPlayer-一个最简单使用的视频播放器,集成于bilibili开源直播播放器(ijkplayer)
- 最简单的bilibili(哔利哔利)的视频下载地址
- 使用Wireshark抓取SNMP Trap包
- 使用Wireshark抓取SNMP Trap包
- mac使用Wireshark抓取分析iphone数据包
- 使用wireshark抓取解密https包
- 使用wireshark抓取解密https包
- Leetcode 51. N-Queens
- c++ 字符串剪切
- Spring AOP 原理分析 part1
- VR时代的思考
- 异常:android.database.StaleDataException: Attempted to access a cursor after it has been closed
- 使用wireshark抓取bilibili直播的真实地址
- C++ hook
- WebRTC原生音频采集
- linux信号机制基础
- 文章标题
- 22. Generate Parentheses
- 单例模式---从职员层次谈起
- 二分查找-剑指offer
- XMPP完成注册和登录