有没有人解析过Smooth Video(Silverlight)清单文件?
我可以获取它,我只需要帮助理解格式。我希望我的python脚本下载一个块来测试一个流是否正常工作。
我把它当作以下部分:
<c d="62680000" />
是块ID吗?
我如何计算获取它们的路径,基于URl字段,如:
Url="QualityLevels({bitrate})/Fragments(video={start time})/WowzaSessions(421420850).ismv">
我已经为Apple HLS进行了相同的测试,尽管这种格式更简单。
有关此格式的任何帮助吗? MS似乎没有太多关于这个的文档,它都专注于在浏览器中使用现有的播放器控件。
答案 0 :(得分:2)
块定义应包含块编号和持续时间,您可以使用它来计算请求的开始时间。在您的示例中,块编号似乎丢失了,但您可以根据它们在清单中出现的顺序来推断它们。
如果您前往Smooth Streaming Sample站点并使用fiddler捕获请求,您将能够看到它请求的清单以及清单和下载的块之间的关系。
在这种情况下,清单网址为http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest
,它提供包含8个不同质量的轨道的视频流,以及包含数字和持续时间的块定义。播放器根据前一个块的总持续时间计算每个连续块的开始时间,并通过附加流定义中的Url
属性来请求它,质量和开始时间替换为.ism url的末尾
对于此请求http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/QualityLevels(2040000)/Fragments(video=360000000)
,我们可以通过将开始时间除以块持续时间(360000000/20000000 = 18)来确定所请求的特定块