我正在 Wireshark 上捕捉 YouTube 视频。我可以在 itag=34 上看到带有元数据信息的 FLV 文件:
...K.........
onMetaData.......duration.@.y.C.....starttime..........
totalduration.@.y.C.....width.@.........height.@v....... videodatarate.@v.....|.
audiodatarate.@`.=ET8N. totaldatarate.@~.z..m+..framerate.@7...f...
bytelength.A~....... canseekontime...
sourcedata..
现在,我将分辨率切换到 480p,因此 itag 更改为 35,但视频不会从开始位置开始,而是从 360p 停止的下一个时间戳开始,并且切换发生,因此 FLV 的这个新片段没有元数据信息。相反,我可以看到如下 amf 消息:
.'bytelength_low_word.....)bytelength_high_word...width..V
height..`.video_duration...Y.audio_duration...F.avc.W......M@.....gM@....=..............H..
.h.. .aac.%...................timestamp..K..
现在,我需要为新片段制作标头以馈送到我的 FLV 解析器,但我无法理解 AMF 消息结构以及如何为 FLV 解析器制作新标头。任何人都可以帮忙吗?