資源簡介
基于dash協議,根據客戶端網絡帶寬情況,視頻自適應切換

代碼片段和文件信息
#
#based?on?python-ebml?and?the?example?of?Carson?McDonald
#
#Created?by?Benjamin?Rainer?and?Stefan?Lederer
previous_offset?=?0
video_file?=?““
is_first?=?0
from?ebml.schema?import?EBMLDocument?UnknownElement?CONTAINER?BINARY
def?fill_video_info(element?offset?video_info):
??global?previous_offset
??global?video_file
??global?is_first
??if?element.name?==?‘Duration‘:
????video_info[‘duration‘]?=?element.value
?
??if?element.name?==?‘DisplayWidth‘:
????video_info[‘width‘]?=?element.value
?
??if?element.name?==?‘DisplayHeight‘:
????video_info[‘height‘]?=?element.value
?
??if?element.name?==?‘FileMimeType‘:
????video_info[‘mimetype‘]?=?element.value
??if?element.name?==?‘Cluster‘:
????if?is_first?==?0:
???????video_info[‘segments‘].append(‘se> se>‘)
???????video_info[‘segments‘].append(‘‘)
???????is_first?=?is_first?+?1
????else:
???????video_info[‘segments‘].append(‘ ‘)
????
??if?element.name?==?‘Cluster‘:
????previous_offset?=?offset
??
??if?element.type?==?CONTAINER:
????for?sub_el?in?element.value:
??????fill_video_info(sub_el?offset?+?element.head_size?video_info)
??????offset?+=?sub_el.size
?
if?__name__?==?‘__main__‘:
??import?sys
??import?json
??import?os
??import?xmlrpclib;
??mod_name?_?cls_name?=?‘ebml.schema.matroska.MatroskaDocument‘.rpartition(‘.‘)
??try:
????doc_mod?=?__import__(mod_name?fromlist=[cls_name])
????doc_cls?=?getattr(doc_mod?cls_name)
??except?ImportError:
????parser.error(‘unable?to?import?module?%s‘?%?mod_name)
??except?AttributeError:
????parser.error(‘unable?to?import?class?%s?from?%s‘?%?(cls_name?mod_name))
??global?video_file
??video_info?=?{}
??video_info[‘filename‘]?=?sys.argv[1]
??video_file?=?sys.argv[1]
??video_info[‘mimetype‘]?=?‘video/webm‘
??video_info[‘total_size‘]?=?os.stat(sys.argv[1]).st_size
??video_info[‘segments‘]?=?[]
??video_info[‘segmentduration‘]?=?sys.argv[2]
??video_info[‘baseurl‘]?=?sys.argv[4]
??video_info[‘minBufferTime‘]?=?sys.argv[3]
????
??with?open(sys.argv[1]?‘rb‘)?as?stream:
????doc?=?doc_cls(stream)
????offset?=?0
????for?el?in?doc.roots:
??????fill_video_info(el?offset?video_info)
??????offset?+=?el.size
??print?‘seURL>‘?+?video_info[‘baseurl‘]?+?‘ seURL>‘
??print?‘‘
??for?el?in?video_info[‘segments‘]:
?????print?el
??print?‘ ‘
??print?‘
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-07-21?14:19??DASH-JS-master\
?????文件????????6148??2014-07-21?14:19??DASH-JS-master\.DS_Store
?????文件???????18356??2014-07-21?14:19??DASH-JS-master\bigbuckbunny_mp.mpd
?????文件????????3001??2014-07-21?14:19??DASH-JS-master\create_mpd_segment_info.py
?????目錄???????????0??2014-07-21?14:19??DASH-JS-master\dash-js\
?????文件????????6148??2014-07-21?14:19??DASH-JS-master\dash-js\.DS_Store
?????文件????????5599??2014-07-21?14:19??DASH-JS-master\dash-js\DASHttp.js
?????文件????????4984??2014-07-21?14:19??DASH-JS-master\dash-js\adaptationlogic.js
?????文件????????2529??2014-07-21?14:19??DASH-JS-master\dash-js\bandwidth.js
?????文件????????5506??2014-07-21?14:19??DASH-JS-master\dash-js\ba
?????文件????????1125??2014-07-21?14:19??DASH-JS-master\dash-js\buffer.js
?????文件????????2437??2014-07-21?14:19??DASH-JS-master\dash-js\dash.js
?????文件?????????208??2014-07-21?14:19??DASH-JS-master\dash-js\dashPla
?????文件????????1600??2014-07-21?14:19??DASH-JS-master\dash-js\eventHandlers.js
?????文件????????8206??2014-07-21?14:19??DASH-JS-master\dash-js\fplot.js
?????文件????????2453??2014-07-21?14:19??DASH-JS-master\dash-js\mediaSourceAPIAdaptation.js
?????文件????????5298??2014-07-21?14:19??DASH-JS-master\dash-js\mediaSourceBuffer.js
?????文件???????13965??2014-07-21?14:19??DASH-JS-master\dash-js\mpdParser.js
?????文件????????1885??2014-07-21?14:19??DASH-JS-master\dash-js\rate_measurement.js
?????文件????????3285??2014-07-21?14:19??DASH-JS-master\dash-js\timeBuffer.js
?????文件????????1709??2014-07-21?14:19??DASH-JS-master\dashtest.html
?????目錄???????????0??2014-07-21?14:19??DASH-JS-master\ebml\
?????文件??????????41??2014-07-21?14:19??DASH-JS-master\ebml\__init__.py
?????文件?????????203??2014-07-21?14:19??DASH-JS-master\ebml\__init__.pyc
?????文件???????14438??2014-07-21?14:19??DASH-JS-master\ebml\core.py
?????文件???????16224??2014-07-21?14:19??DASH-JS-master\ebml\core.pyc
?????文件????????1553??2014-07-21?14:19??DASH-JS-master\ebml\create_playlist.py
?????目錄???????????0??2014-07-21?14:19??DASH-JS-master\ebml\schema\
?????文件??????????89??2014-07-21?14:19??DASH-JS-master\ebml\schema\__init__.py
?????文件?????????303??2014-07-21?14:19??DASH-JS-master\ebml\schema\__init__.pyc
?????文件????????5888??2014-07-21?14:19??DASH-JS-master\ebml\schema\ba
............此處省略30個文件信息
- 上一篇:非正交多址系統功率分配及干擾消除算法研究
- 下一篇:炫酷登錄頁面——掌握屬性動畫
評論
共有 條評論