1、白皮书 /Ada SegmentTemplate timescale=1000000 duration=6000000 availabilityTimeOffset=5.979 initialtion=1551938403/init-stream$RepresentationID$.m4s media=1551938403/chunk-stream_t_$RepresentationID$-$Number%05d$.m4s start SegmentTemplate timescale=1000000 duration=6000000 availabilityTimeOffset=5.967
2、initialization=1551938403/init-stream$RepresentationID$.m4s media=1551938403/chunk-stream_t_$RepresentationID$-$Number%05d$.m4s start AdaptationSet contentType=audio segmentAlignment=true bitstreamSwitc /Ada Per AdaptationSet contentType=audio segmentAlignment=true bitstreamSwitc /Ada AdaptationSet2
3、019 年 5 月了解 OTT 视频交付中一致性的价值白皮书log.Fatal(http.ListenAndServe(:1337,nil);package main;import(fmt;html;log;net/http;strconv;strings;time);type ControlMessage struct Target string;Count int64;func main()controlChannel:=make(chan ControlMessage);workerCompleteChan:=make(chan bool);statusPoll-Channel:=mak
4、e(chan chan bool);workerActive:=false;go admin(controlChannel,statusPollChannel);for select case respChan:=-statusPollChannel:respChan-workerActive;case msg:=-controlChan-nel:workerActive=true;go doStuff(msg,workerCompleteChan);case status:=-workerCompleteChan:workerActive=status;func admin(cc chan
5、ControlMessage,statusPollChannel chan chan bool)http.HandleFunc(/admin,func(w http.ResponseWriter,r*http.Request)/*Does anyone actually read this stuff?They probably should.*/hostTokens:=strings.Split(r.Host,:);r.ParseForm();count,err:=strconv.ParseInt(r.FormValue(count),10,64);if err!=nil fmt.Fprin
6、tf(w,err.Error();return;msg:=ControlMessageTarget:r.FormValue(target),Count:count;cc-msg;fmt.Fprintf(w,Control message issued for Target%s,count%d,html.EscapeString(r.FormValue(target),count););http.Han-dleFunc(/status,func(w http.ResponseWriter,r*http.Request)reqChan:=make(chan bool);statusPoll-Cha