我正在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解析器创建新标头。有人可以帮忙吗?