At present, ABR (Adaptive bitrate Adaptive bitrate technology) is a mainstream video playback format, HLS,HSS and HDS are widely used. Multi-screen video playback is also a trend, including mobile phones, tablets, computers, televisions, set-top boxes and other fused together, different occasions different network conditions, may choose different devices to play video.
In the video solution test, our system general terminal playback format contains the Hls,hss,hds, depending on the device to choose different playback formats, such as the iphone will choose HLS,PC will choose HSS and so on. For non-encrypted hls,hss,hds have player to play, HLS with Iphone,mac on safari can play, or QUICKTIME,HSS can choose Silverlight plug-in to play, HDS is used Comcast A plugin made by lab. And for the encryption Hls,hss,hds, the encryption system is various, the test has Comcast Ckm,verimatrix,vg,insys,irdeto,playready and so on, most of the time does not have the player to test. At this time workaround is to follow the following process to test, such as HSS manifest file, if the DRM encryption, need check whether there is Protectionheader field, you can see the following with Insys DRM is encrypted with a large section of the key's info.
1. wget (curl) HSS manifest.
2. Check HSS manifest include key info.
3. Check DRM system related logs and make sure key is create successfully.
4. Check our system related logs.
5. wget TS segment and compared with NO-DRM segment.
HSS with Insys DRM
<?xml version= "1.0"?> <smoothstreamingmedia majorversion= "2" minorversion= "2" canpause= "true" CanSeek= "true "Duration=" 1360000000 "timescale=" 10000000 "> <Protection><protectionheader systemid= "{9a04f079-9840-4286-ab92-e65be0885f95}" > 2giaaaeaaqdqajwavwbsae0asabfaeearabfafiaiab4ag0ababuahmapqaiaggadab0ahaaogavac8acwbjaggazqbtageacwauag0aaqbjahiabwbzag8az Gb0ac4aywbvag0alwbeafiatqavadiamaawadcalwawadmalwbqagwayqb5afiazqbhagqaeqbiaguayqbkaguacgaiacaadgblahiacwbpag8abga9aciana Auadaalgawac4amaaiad4apabeaeeavabbad4apabqafiatwbuaeuaqwbuaekatgbgae8apga8aesarqbzaewarqboad4amqa2adwalwblaeuawqbmaeuatga +adwaqqbmaecasqbead4aqqbfafmaqwbuafiapaavaeeatabhaekaraa+ Adwalwbqafiatwbuaeuaqwbuaekatgbgae8apga8aesasqbead4awabladqaaqbqadqazwbkae8avqaraeeababuaekacwbwahmaoabhafcauqa9ad0apaava Esasqbead4apabdaegarqbdaesauwbvae0apga2admamqbqadcaeqb2ahcalwbuae0apqa8ac8aqwbiaeuaqwblafmavqbnad4apabmaeeaxwbvafiataa +aggadab0ahaaogavac8acabyac0acwb0ageazwblac4azabyag0algbpag4acwb5ahmaywbkac4abgblahqalwbyagkazwboahqacwbtageabgbhagcazqby ac4ayqbzag0aeaa8ac8atabbaf8avqbsaewapga8aeqauwbfaekaraa+ Aeeaqqbbaeeaqqbbaeeaqqbbaeeaqqbbaeeaqqbbaeeaqqbbaeeaqqbbaeeapqa9adwalwbeafmaxwbjaeqapga8ac8arabbafqaqqa+adwalwbxafiatqbiaeuaqqbeaeuauga+aa== </ProtectionHeader> </Protection> <streamindex type= "text" name= "Cc_frag_eng_" language= "Eng_" subtype= "CAPT" chunks= "to" timescale= "10000000" Url= " Qualitylevels ({bitrate})/fragments (Cc_frag_eng_={start Time}) "> <qualitylevel index=" 0 "bitrate=" 1308347 " fourcc= "TTML"/> <qualitylevel index= "1" bitrate= "1004888" fourcc= "TTML"/> <qualitylevel Index= "2" Bitrate = "1814104" fourcc= "TTML"/> <qualitylevel index= "3" bitrate= "3668563" fourcc= "TTML"/> <qualitylevel Index= "4" bitrate= "7040300" fourcc= "TTML"/> <c t= "20020000" d= "20020000"/> <c t= "40040000" d= "20020000"/> < C t= "60060000" d= "20020000"/>
HSS with no DRM
<?xml version= "1.0"?> <smoothstreamingmedia majorversion= "2" minorversion= "2" canpause= "true" CanSeek= "true "Duration=" 1360000000 "timescale=" 10000000 "> <streamindex type=" text "name=" Cc_frag_eng_ "language=" Eng_ " Subtype= "CAPT" chunks= "timescale=" 10000000 "Url=" Qualitylevels ({bitrate})/fragments (Cc_frag_eng_={start time}) "> <qualitylevel index=" 0 "bitrate=" 1308347 "fourcc=" TTML "/> <qualitylevel index=" 1 "bitrate=" 1004888 " fourcc= "TTML"/> <qualitylevel index= "2" bitrate= "1814104" fourcc= "TTML"/> <qualitylevel Index= "3" Bitrate = "3668563" fourcc= "TTML"/> <qualitylevel index= "4" bitrate= "7040300" fourcc= "TTML"/> <c t= "20020000" d= " 20020000 "/> <c t=" 40040000 "d=" 20020000 "/> <c t=" 60060000 "d=" 20020000 "/> <c t=" 80080000 "d=" 20020000 "/> <c t=" 100100000 "d=" 20020000 "/> <c t=" 120120000 "d=" 20020000 "/> <c t=" 140140000 "d=" 20020000 "/ > <c t= "160160000" d= "20020000"/> <c t= "180180000" d= "20020000"/> <c t=" 200200000 "d=" 20020000 "/> <c t=" 220220000 "d=" 20020000 "/> <c t=" 240240000 "d=" 20020000 "/ > <c t= "260260000" d= "20020000"/> <c t= "280280000" d= "20020000"/> <c t= "300300000" d= "20020000"/> & Lt;c t= "320320000" d= "20020000"/> <c t= "340340000" d= "20020000"/>
HLS Master m3u8 contains information about several bitrate, and each sub bitrate m3u8 contains information that does not have a TS segment. If you are encrypting HLS files with DRM information, Master m3u8 does not contain key and license information, and each sub bitrate m3u8 will contain key information. Today in the project's system debugging Verimatrix, VG DRM two DRM, the following can see the key section or there are different.
HLS Sub m3u8 manifest with Verimatrix DRM
#EXTM3U #EXT-x-targetduration:11 #EXT-x-version:4 #EXT-x-media-sequence:0 #EXT-x-playlist-type:vod #EXT-x-key: Method=aes-128,uri= "http://127.0.0.1:8260/hls/client/keyfile/vod003" #EXTINF: 10.01, 1308347/30960.ts #EXTINF : 10.01, 1308347/931860.ts #EXTINF: 10.01, 1308347/1832760.ts #EXTINF: 10.01, 1308347/2733660.ts #EXTINF: 10.01, 1308347/ 3634560.ts #EXTINF: 10.01, 1308347/4535460.ts #EXTINF: 10.01, 1308347/5436360.ts #EXTINF: 10.01, 1308347/6337260.ts # extinf:10.01, 1308347/7238160.ts #EXTINF: 10.01, "1308347.m3u8.2" 33L, 634C
HLS Sub m3u8 manifest with VG DRM
#EXTM3U #EXT-x-targetduration:11 #EXT-x-version:4 #EXT-x-media-sequence:0 #EXT-x-playlist-type:vod #EXT-x-key: Method=aes-128,uri= "8170110000080c0d9277d62c121ef1a2763b6e00", iv=0xb7295d642e8f4a65316b8221cb4654a0 # extinf:10.01, 1308347/30960.ts #EXTINF: 10.01, 1308347/931860.ts #EXTINF: 10.01, 1308347/1832760.ts #EXTINF: 10.01, 1308347/2733660.ts #EXTINF: 10.01, 1308347/3634560.ts #EXTINF: 10.01, 1308347/4535460.ts #EXTINF: 10.01, 1308347/ 5436360.ts #EXTINF: 10.01, 1308347/6337260.ts #EXTINF: 10.01,
HLS Sub m3u8 manifest with no Drm
#EXTM3U #EXT-x-targetduration:11 #EXT-x-version:4 #EXT-x-media-sequence:0 #EXT-x-playlist-type:vod #EXTINF: 10.01, 1308347/30960.ts #EXTINF: 10.01, 1308347/931860.ts #EXTINF: 10.01, 1308347/1832760.ts #EXTINF: 10.01, 1308347/2733660. TS #EXTINF: 10.01, 1308347/3634560.ts #EXTINF: 10.01, 1308347/4535460.ts #EXTINF: 10.01, 1308347/5436360.ts #EXTINF : 10.01, 1308347/6337260.ts #EXTINF: 10.01,
Summary of encrypted HLS and HSS tests