我一直在研究Youtube的新HTML 5播放器和DASH实现。我开始使用Wireshark和像DummyNet这样的实用程序来查看比特率如何对带宽的变化作出反应。但在我开始讨论之前,我需要更好地理解我所看到的数据包。我主要寻找解码GET请求的帮助。我一直在通过' http.request.method == GET'过滤我的Wireshark捕获。并遵循TCP流。我看到参数是:clen,dur,gcr,gir,id,ip,ipbits,itag,lmt,source,upn,expire。有些是直截了当的,有些则不是。我最担心的是clen,upn,lmt和一个标记为mt的param,它未被列为sparam。我最感兴趣的是找到所要求的比特率。但我现在感到困惑的是,我是否正在寻找合适的地方。 clen是唯一可以看作Mbps值的字段。但是这个价值通常不符合youtube列出的特定质量的比特率。对于比特率来说,它们看似奇怪的价值。以下是示例请求网址:
http://r15---sn-p5qlsney.googlevideo.com/videoplayback?lmt=1389519273541060&source=youtube&expire=1394008508&sver=3&dur=191.692&itag=243&upn=dPjd90tRg4o&id=o-ANPasmTb-Kbiei84oPQpCjzKQT9ypEOEBqSpq3YmfDmZ&fexp=906373%2C931942%2C934913%2C916612%2C937417%2C937416%2C913434%2C936910%2C936913%2C902907%2C934022%2C3300021%2C3300114%2C3300131%2C3300137%2C3300164%2C3310366%2C3310628%2C3310649&gir=yes&signature=898DF292EE99A453258333B40880CC72BCE453D1.DB976A3B1EB55CF43C36F6FFF2AF329FAD2E9EE4&sparams=clen%2Cdur%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Csource%2Cupn%2Cexpire&ipbits=0&ip=128.226.230.194&key=yt5&clen=4951576&cpn=BzQtGIscpjryZJ1D&alr=yes&mime=video%2Fwebm&ratebypass=yes&redirect_counter=1&cms_redirect=yes&ms=nxu&mt=1393986619&mv=m&range=1737754-2707644&keepalive=yes
我使用谷歌浏览器作为浏览器,并确保我检查的所有视频都使用DASH激活的HTML5播放器。