HTTP Streaming protocol 分析笔记

Node.js:深入浅出 http 与 stream 前言 stream(流)是Node.js提供的又一个仅在服务区端可用的模块,流是一种抽象的数据结构。Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出流)。 通过本文,你会知道 stream 是什么,以及 strem 在 http 服务中发挥着什么作用。 一、st... 阅读详情
 
Windows Media service 提供mms:// 和http:// 协议进行音视频流播放。由于微软没有公开以上协议的技术细节,很难对流进行下载保存。http 相对简单,以下对其进行抓包分析。
 
mms/http/rstp 协议文档可参考http://sdp.ppona.com
 
 
 
 
HTTP 交互过程:
 
GET /xfm2003/video/morrissey_-_first_of_the_gang_to_die_hi.wmv HTTP/1.0
Accept: */*
User-Agent: NSPlayer/9.0.0.3250
Host: 195.173.73.27
X-Accept-Authentication: Negotiate, NTLM, Digest, Basic
Pragma: no-cache,rate=1.000,stream-time=0,stream-offset=4294967295:4294967295, packet-num=4294967295,max-duration=0
Pragma: xPlayStrm=1
Pragma: xClientGUID={3300AD50-2C39-46c0-AE0A-EF4916E929D5}
Pragma: stream-switch-count=3
Pragma: stream-switch-entry=ffff:1:0 ffff:2:2 ffff:3:0
Accept-Language: en-gb, *;q=0.1
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Server: Cougar 4.1.0.3857
Via: netcache1-new (NetCache NetApp/5.6.2R1D17)
Cache-Control: no-cache
Pragma: no-cache
Pragma: client-id=5382809
Pragma: features="seekable,stridable"
<HTTP BODY>
..
 
 
 
 
<HTTP BODY> 包格式:
 

Command(2 bytes)
Length(2 bytes)
Data (length bytes)
...
...
...

 
Data

Seq(4)
ID(1)
Flag(1)
Length(2)
Asf Data(length – 8)

 
保存:把所有的Asf Data写入本地文件中,接收完后,最后回写ASF_File_Properties_Object 几个重要的字段(File Size/File Size/Creation Date/Data Packets Count/Play Duration/Send Duration/Preroll/Flags),即为.asf文件了
00000000 48 54 54 50 2f 31 2e 30 20 32 30 30 20 4f 4b 0d HTTP/1.0 200 OK.
...
000000E0 6b 61 62 6c 65 2c 73 74 72 69 64 61 62 6c 65 22 kable,st ridable"
000000F0 0d 0a 0d 0a   
000000F4  24 48 44 0b 00 00 00 00 00 04 44 0b 30 26 b2 75 $H D..... ..D.0&.u
00000104 8e 66 cf 11 a6 d9 00 aa 00 62 ce 6c 8f 0d 00 00 .f...... .b.l....
00000114 00 00 00 00 09 00 00 00 01 02 a1 dc ab 8c 47 a9 ........ ......G.
00000124 cf 11 8e e4 00 c0 0c 20 53 65 68 00 00 00 00 00 ....... Seh.....
...
 
<Type Header Structure>: 24 48 44 0b
 Command: 24 48
2448 “$H” Header packet follows
2444 “$D” Data (media) packet follows
A444 “?D” Data (sometimes used instead of $D)
2445 “$E” End of stream
2443 “$C” Changing media – reload new media, new ASF header follows
244D “$M” Meta data follows (used for custom scripts)
2450 “$P” Packet pair data follows
Length: 44 0b = 0b44 , Next header addr = 000000F4 + 0B44 + 4 = 00000C3C
 
<Type Object>: 00 00 00 00 00 04 44 0b      
Seq: 00 00 00 00
Id: 00   (00=live 01=pre-recorded)
Flag: 04   (00 = middle of packet, 04 = first packet
08 = last packet 0C = only one packe)
<ASF header>: 30 26 b2 ..
Asf header size = 8f 0d 00 00 00 00 00 00 = 0d8f = 2271
ASF_File_Properties_Object = 8CABDCA1-A947-11CF-8EE4-00C00C205365
= a1 dc ab 8c 47 a9 cf 11 8e e4 00 c0 0c 20 53 65
 
 
 
 
 
<asf header ...>
Next addr = 00000C3C + 028D + 4 = 00000ECD
 
00000C3C 24 48 8d 02 01 00 00 00 00 08 8d 02 00 69 00 61 $H...... .....i.a
00000C4C 00 20 00 56 00 69 00 64 00 65 00 6f 00 20 00 39 . .V.i.d .e.o. .9
...
00000E8C 84 00 00 02 00 2d a2 00 00 03 00 2d 8a 03 00 36 .....-.. ...-...6
00000E9C 26 b2 75 8e 66 cf 11 a6 d9 00 aa 00 62 ce 6c 0a &.u.f... ....b.l.
00000EAC f8 8f 00 00 00 00 00 8c 59 e9 68 6e 33 1d 47 8f ........ Y.hn3.G.
00000EBC 2f 57 6e 11 e0 37 c5 c3 0c 00 00 00 00 00 00 01 /Wn..7.. ........
00000ECC 01                                               .
 
上面 36 26 ... 为 <Data object> 开始
 
 
<ASF data packet> Next addr = 00000ECD + 0b4f + 4 = 00001A20
Live, seq = 05e7, first frame, packet size= 0b4f – 8 = 0b47 = 2887
 
00000ECD 24 44 4f 0b e7 05 00 00 00 04 4f 0b 82 00 00 09 $DO..... ..O.....
00000EDD 5d 00 0d c8 01 00 0a 00 82 03 43 be 02 00 00 0a ]....... ..C.....
00000EED ea 03 00 00 80 d3 01 00 28 00 2c 01 07 d0 91 d0 ........ (.,.....
 
<ASF data packet> Next addr = 00001A20 + 0b4f + 4 = 00002573
Live, seq = 05e8
 
00001A19 04 62 86 dd 4c 94 48 24 44 4f 0b e8             .b..L.H$ DO..
00001A25 05 00 00 00 00 4f 0b 82 00 00 09 5d 00 18 c8 01 .....O.. ...]....
00001A35 00 5e 00 84 82 a9 ea 09 00 00 08 8e 0a 00 00 d0 .^...... ........
00001A45 d3 01 00 a4 00 b4 c5 18 44 00 04 1f 2c 86 08 ac ........ D...,...
..
 
<ASF data packet> Next addr = 00002573 + 0b4f + 4 = 000030C6
Live, seq = 05e9
 
00002561 16 fc 1c fc 85 00 63 4c e2 09 02 48 a2 08 07 b5 ......cL ...H....
00002571 66 d4 24 44 4f 0b e9 05 00 00 00 00             f.$DO... ....
0000257D 4f 0b 82 00 00 09 5d 00 76 c8 01 00 6c 00 84 03 O.....]. v...l...
0000258D 46 83 02 00 00 0a 25 04 00 00 f8 d3 01 00 28 00 F.....%. ......(.
 
 
 
ASF Format

Header Object
File Properties Object
Stream Properties Object 1
…
Stream Properties Object N
<Other header objects>
Data Object
Data Packet 1
…
Data Packet M
<Other top-level objects>
Index Object 1
…
Index Object K
Simple Index Object 1
…
Simple Index Object L

 
The Header Object is represented using the following structure.

ASF_Header_Object
75B22630-668E-11CF-A6D9-00AA0062CE6C

 
 
 

Field name
Field type
Size (bytes)
Object ID
GUID
16
Object Size
QWORD 
8
Number of Header Objects
DWORD 
4
Reserved1
BYTE
1
Reserved2
BYTE
1

 
 
The File Properties Object is represented using the following structure.

ASF_File_Properties_Object
8CABDCA1-A947-11CF-8EE4-00C00C205365

 
 

Field name
Field type
Size (bits)
Object ID
GUID
128
Object Size
QWORD
64
File ID
GUID
128
File Size
QWORD
64
Creation Date
QWORD
64
Data Packets Count
QWORD
64
Play Duration
QWORD
64
Send Duration
QWORD
64
Preroll
QWORD
64
Flags
DWORD
32
 
Broadcast Flag
 
1 (LSB)
 
Seekable Flag
 
1
 
Reserved
 
30
Minimum Data Packet Size
DWORD
32
Maximum Data Packet Size
DWORD
32
Maximum Bitrate
DWORD
32

 
 
 

File Properties Object  (104 bytes)
Property
Value
 
File Position
30  ( 0x1E )
 
Object ID
8CABDCA1-A947-11CF-8EE4-00C00C205365
 
Object Size
104  ( 0x68 )
 
 
Version
2
 
MMS ID
00022535-336E-471D-8F2F-576E11E037C5
 
Total Size
5074973  ( 0x4D701D )
 
Creation Time
2004-7-6  16:30:17.156
 
Packets
1756
 
Duration
02:23.597
 
Send Duration
02:20.597
 
Preroll
00:03.000
 
Flags
0x00000002
 
Broadcast
0
 
Seekable
1
 
Use Packet Template
0
 
Live
0
 
Reliable
0
 
Recordable
0
 
Unknown Data Size
0
 
Max Packet Size
2888  ( 0xB48 )
 
Min Packet Size
2888  ( 0xB48 )
 
Max Bitrate (bit/sec)
307485
 

 
 
The Data Object is represented using the following structure.
 

Field name
Field type
Size (bytes)
Object ID
GUID
16
Object Size
QWORD 
8
File ID
GUID
16
Total Data Packets
QWORD
8
Reserved
WORD
2
Data Packets
See section 5.2
varies

 

Data Object  (not loaded)  (9435146 bytes)
Property
Value
 
File Position
3471  ( 0xD8F )
 
Object ID
75B22636-668E-11CF-A6D9-00AA0062CE6C
 
Object Size
9435146  ( 0x8FF80A )
 
 
MMS ID
68E9598C-336E-471D-8F2F-576E11E037C5
 
Packets
3267
 
Alignment
1
 
Packet Aligment
1
 
Raw data dump
Size
50  ( 0x32 )
 
Data
0000: 36 26 B2 75 8E 66 CF 11-A6 D9 00 AA 00 62 CE 6C   6& u f       b l
0010: 0A F8 8F 00 00 00 00 00-8C 59 E9 68 6E 33 1D 47            Y hn3 G
0020: 8F 2F 57 6E 11 E0 37 C5-C3 0C 00 00 00 00 00 00    /Wn  7        
0030: 01 01                                               
 

 
HTTP Adaptive Streaming简介 HTTP Adaptive Streaming是指基于HTTP协议的自适应传输流技术。流媒体技术是为了解决音视频多媒体文件在普通非流式传输方案中文件必须下载完成之后才能播放的问题。为了实现边下载边播放的问题,即直播技术。 流式传输方式首先将音视频多媒体文件切分成若干个小块,然后服务器以小块为单位进行分发,客户端播放器只需要去请求下载资源,即能实现边下载边播放的流媒体传输方式。 目前主流的HTT... 阅读详情

相关推荐

RTSP协议(Real Time Streaming Protocol)

RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数等方面,

lllllll2021的博客 323

解释和对比“application/octet-stream“与“application/x-protobuf“

在现代 Web 和分布式系统的开发中,数据的传输和交换格式扮演着关键角色。为了确保数据在不同系统之间的传输过程中保持一致性,MIME 类型(Multipurpose Internet Mail Extensions)被广泛应用于描述数据的格式和内容类型。在 HTTP 请求和响应中,头字段用于标识消息体中的数据类型。和,并对它们的应用场景和技术特点进行对比。MIME 类型是 Internet 标准,用于描述多种文件类型的格式,以便在网络上进行传输。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1万+

httpstream:HTTPStream 是 Python 的 HTTP 客户端库,具有易于使用的 API 并支持增量 JSON 文档检索

HTTP流 HTTPStream是 Python 的 HTTP 客户端库,它使用方便的基于资源的接口包装标准库 HTTP 客户端,还提供对增量 JSON 文档检索和 RFC 6570 URI 模板的支持。 安装 HTTPStream 托管在 PyPI 上,因此要安装,只需使用pip : pip install httpstream 快速开始 >>> from httpstream import get >>> get("https://api.duckduckgo.com/?q=neo4j&format=json").content {'Abstract': 'Neo4j is an open-source graph database, implemented in Java.', 'AbstractSource': 'Wikipedia', 'AbstractText': 'Ne

application/octet-stream

当浏览器在请求资源时,会通过http返回头中的content-type决定如何显示/处理将要加载的数据,如果这个类型浏览器能够支持阅览,浏览器就会直接展示该资源,比如png、jpeg、video等格式。在某些下载文件的场景中,服务端可能会返回文件流,并在返回头中带上Content-Type:application/octet-stream,告知浏览器这是一个字节流,浏览器处理字节流的默认方式就是下载。 Application/octet-stream是应用程序文件的默认值。意思是未知的应用程序文件,浏览器一

qq_42582773的博客 7万+

stream-http:浏览器中的流节点http

流http 该模块是Node浏览器的本机http模块的实现。 它试图尽可能匹配Node的API和行为,但是某些功能不可用,因为浏览器对请求的控制几乎没有。 这在很大程度上受到了启发,并打算取代它。 它有什么作用? 根据其名称, stream-http尽可能在请求完成之前尝试向其调用者提供数据。 支持反压,允许浏览器仅在消耗时以最快的速度从服务器提取数据,其受以下支持: Chrome> = 58(使用fetch和WritableStream ) 下列浏览器支持真正的流式传输,其中一次仅需将少量请求保留在内存中: Chrome> = 43(使用fetch API) Firefox> = 9(在xhr中使用moz-chunked-arraybuffer responseType) 所有其他受支持的浏览器都支持伪流,在伪流中,数据可以在请求完成之前可用,但是整个响应必须保留在内存

从零理解域随机化:通过Isaac Lab的events.py掌握Sim-to-Real关键技术

本文深入解析域随机化技术如何通过Isaac Lab的events.py实现Sim-to-Real迁移,提升机器人策略在真实世界的鲁棒性。从刚体属性到环境条件的系统级随机化,详细介绍了工程实践中的关键参数配置与调试技巧,帮助开发者有效缩小仿真与现实的差距。

weixin_29062613的博客 261

SS之IIS Smooth Streaming Transport Protocol 消息交互

IIS Smooth Streaming Transport Protocol [2009] http://www.iis.net/community/files/media/smoothspecs/[MS-SMTH].pdf 另外还找到一篇[MS-SSTR] Smooth Streaming Protocol Specification, 感觉跟上面链接的内容几乎一样,但是时间是2011年1

lilypp的专栏 2121

ANSYS Discovery 2023R1 保姆级教程:手把手教你玩转几何模型参数化(附避坑指南)

本文提供ANSYS Discovery 2023R1几何模型参数化的全面教程,涵盖基础环境搭建、核心操作解析及高级应用场景。重点讲解参数化建模中的常见问题与避坑方案,帮助用户高效掌握Workbench与Discovery的协同使用技巧,提升工程仿真效率。

weixin_29204205的博客 754

Real Time Streaming Protocol (RTSP) - 实时流协议

Real Time Streaming Protocol (RTSP) - 实时流协议 The Real Time Streaming Protocol (RTSP) is a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and con

程永强 2263

光电式烟雾传感器实战指南(一) 光迷宫设计与散射原理篇

本文深入解析了光电式烟雾传感器的核心部件——光迷宫的设计原理与光散射机制。文章详细阐述了如何通过精心设计的光学结构实现‘透气不透光’,并重点探讨了前向散射(尤其是135°角)在提升烟雾监测系统灵敏度与可靠性中的关键作用,为DIY爱好者提供了从理论到实践的完整指南。

weixin_29229055的博客 590

【专栏目录】

🌟 深度学习工程师的终极武器库!本专栏深度解析近3年CV领域最前沿的YoloV8改进方案,每一种方法都经过实战验证,性能显著提升!🌟。

m0_47867638的博客 1万+

smooth streaming介绍

转自:http://blog.youkuaiyun.com/lilypp/article/details/7170853 IIS Smooth Streaming Transport Protocol [2009] http://www.iis.net/community/files/media/smoothspecs/[MS-SMTH].pdf 另外还找到一篇[MS-SSTR] Smooth Stre

haima1998的专栏 4709

lammps教程:in文件结构详解以及一个比较实用的in文件模板

lammps软件只是一个求解器,没有可视化的前处理和后处理软件,所有的命令只能通过代码的方式输入到求解器进行求解计算。 所有的命令都被写到一个称为“in”的文件里,对于初学者来说,熟悉in文件的编写是一个难点。 in文件其实就是一个文本文档,也没有要求文件名或者后缀名中必须带有“in”字样,用任何文件名均可运行。 in文件里的代码是按照编写的顺序进行解释执行,对于大部分命令行来说,前后顺序影响并不是很大,但是,对于一些命令,在执行过程中需要某个参数,则这个参数的定义和计算必须写在命令执行之前。 例如,对晶体

lammps_jiayou的博客 2万+

HLS HTTP Live Streaming

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of their QuickTime X andiPhone software systems. It works by br

flyingqr的专栏 1314

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 485

Cesium雷达追踪追踪(圆锥体效果)

【代码】Cesium雷达追踪追踪(圆锥体效果)

God's asylum的博客 2931

HTTP Adaptive Streaming

HTTP Adaptive Streaming简称HAS,中文名称为码流自适应。随着这几年移动终端对视频播放需求的增长,HAS技术慢慢火热起来。 HAS技术中流媒体服务器端需要准备各种码率的媒体数据,然后对每种码率的媒体数据都进行切割分片,每个切片时长一直,大概2~10秒钟,每个切片由一个完整的GOP序列组成,一个GOP序列里面有1个或者多个I帧,GOP序列的第一个帧必须是I帧,并且每个切片都能...

weixin_30319097的博客 256

WPS文档中心和文档中台 operate 未授权访问漏洞(CVE-2025-0717)

WPS文档中心和文档中台的/open/v6/api/etcd/operate?key=/config/storage&method=get接口存在未授权访问漏洞,攻击者可通过该漏洞获取AK/SK密钥等信息,这些密钥通常用于系统内部认证和权限控制,泄露后可能导致攻击者进一步修改K8s配置、部署恶意容器或执行远程命令,最终实现对系统的完全控制。

李同學AI安全 905

浅谈HTTP Adaptive Streaming技术及其前景

转自:http://blog.sina.com.cn/s/blog_5c5e802601012v8z.html HTTP Adaptive Streaming(以下简称“HAS”)技术结合了传统的流媒体技术和HTTP渐进式下载播放的特点,以HTTP的方式向用户传送媒体内容,该技术的采用可以大大提升用户的媒体播放体验,同时该技术降低了头端服务器的技术复杂度。基于HTTP的传送方式提升了媒体内容在网...

baidu_33615716的博客 920

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Real Time Streaming Protocol

The Real Time Streaming Protocol (RTSP) is a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for est

格物致知的专栏 [音视频编解码 网络协议 计算机视觉 计算机图形学 图像理解 语音识别 机器学习 模拟电路 传感器] 1491

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

(一)何謂 RTSP (Real Time Streaming Protocol)?

簡介: 什麼是RTSPRTSP 可以用來控制一到數個 audio 或 video 的 media streams. 它負責的是 streams 的控制, 但傳輸時所用的 protocol 或 mechanism 卻不在它定義的範圍內. 也就是說, server的maintainer 可 以 選 擇 用 tcp 或 udp 來 implement 它的傳輸協定 RTP. RTSP 有什麼特點

1680

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RTSP(Real Time Streaming Protocol)学习笔记 -- RFC2326

Real Time Streaming Protocol (RTSP) RTSP是用在娱乐或通讯中控制流媒体服务器的网络协议,它可以创建和控制两个端点之间的会话.Client发出一些命令来控制media streaming。例如:play, record and pause. RTSP is a text-based protocol. Lines are terminated ...

weixin_30399155的博客 272

Real-time Streaming Protocol (RTSP)

但是,将 RTSP 流与流媒体软件(如开放广播软件 (OBS))配对,可以提供一种将 RTSP 流转换为 RTMP 的方法。大多数专业网络视频录像机 (NVR) 系统都提供了添加第三方制造的摄像机的替代方法,其中之一就是从摄像机访问 RTSP 流。大多数NVR系统还可以接受RTSP流进行录制,对于喜欢或需要对其素材进行二次备份的用户来说,这是一项有用的功能。RTSP 技术为这些公司提供了一种简单的方法,可以同时将视频流传输到家中的多个设备。如果你使用现有的或开发新的流媒体应用,你可能会听说RTSP流。

weixin_43638873的博客 393

Blazeds StreamingAMFChannel error for HTTP 1.0 protocol

如果你是用StreamingAMFChannel,而client side的web browser使用http 1.0协议,那么就会出error: [BlazeDS]Endpoint with id 'my-streaming-amf' cannot service the streaming request made with  HTTP 1.0. Only HTTP 1.1 is suppo

Tomson Xu 1736

Wireshark笔记-对AI连接标准MCP抓包分析

MCP协议是由Anthropic开源的新型AI连接标准,采用HTTP协议作为底层传输,通过SSE(服务器推送事件)实现服务端主动推送。协议工作流程包含三个关键步骤:客户端先建立SSE长连接作为数据通道,然后通过三个POST请求完成初始化、工具查询和工具调用,最终服务端通过SSE通道返回执行结果。实战分析显示,MCP协议通过标准HTTP方法实现了AI服务与客户端的交互,其核心在于将传统HTTP请求与SSE推送机制相结合,形成了一套完整的AI工具调用规范。该协议简化了AI服务集成,被称为"AI的USB

IT1995的博客 1555
上一篇: 网页传播的木马原理及对策
下一篇: Microsoft Windows DirectSpeechSynthesis Module MS07-033 EXPLOIT
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值