Коди Фен Форум България

Пълна версия: Използване на MPEG-DASH и Microsoft smooth streaming
В момента виждате орязана версия на нашия форум. Вижте пълната версия с подходящо форматиране.
С течение на времето, все повече доставчици на съдържание преминават от HLS и HDS към MPEG-DASH или ако не са добре с централния, към Microsoft smooth streaming. В самите стандарти е заложено да избират адаптивно подходящ битрейт и качество:
Код:
DEBUG: AddOnLog: InputStream Adaptive: Selecting stream with conditions: w: 1920, h: 1005, bw: 14006795
Понеже в FFmpeg все още няма заложена подръжка за обработване на MPEG-DASH манифестите и по дефиниция самите стриймове може да изискват content decryption module (DRM) от сорта на Widevine, разработчиците на Kodi поеха сами щафетата за да отговорят на mainstream течението. С появата на Kodi 17 Krypton ще бъде официално регламентирано инсталирането на двоични/бинарни addon-и т.е. такива, които вече са компилирани на някакъв си език (C++, C#...). Дори и да не са с отворен код, идеята е да бъде възможно създаването на читави addon-и за легалните стрийминг провайдери като YouTube, Netflix, Hulu, Amazon Prime и др. използващи защити с DRM.

Ако използвате Kodi 17 или по-нов и сте инсталирали и разрешили InputStream Adaptive addon, тогава имате вече поддръжка на новите DRM формати. Обърнете внимание, че горепосочения модул е наличен само за Krypton и по-нови "Кодита" т.е. в старите няма да бъде възможно зареждането на тези два формата!

В директория ...addons/inputstream.adaptive/lib се намират всички CDM/DRM модули, които модула има на разположение. По подразбиране идва с libssd_wv.so/.dll , но може да му добавите Widevine например, копирайки libwidevinecdm.so/.dll от локалната ви инсталация на Google Chrome, Opera или Steam (проверете т.6).

Гледане на MPEG-DASH през .strm файл:
Код:
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/dash/uk/dash_pc/llnw/bbc_one_hd.mpd


Гледане на MPEG-DASH през m3u плейлиста:
Код:
#EXTM3U
#EXTINF:-1,BBC One
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/dash/uk/dash_pc/ak/bbc_one_hd.mpd
#EXTINF:-1,BBC Two
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/dash/uk/dash_pc/ak/bbc_two_hd.mpd


Код за addon с поддръжка на inputstream.adaptive:
Код:
headers = 'User-Agent=Some user agent&Cookie=some_cookie'
li = xbmcgui.ListItem(iconImage=iconimage, thumbnailImage=iconimage, path=stream)
li.setInfo('video', { 'title': name })
if dash=='true':
  li.setProperty('inputstreamaddon', 'inputstream.adaptive')
  li.setProperty('inputstream.adaptive.manifest_type', 'mpd')
  li.setProperty('inputstream.adaptive.stream_headers', headers)
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, li)

Забележка: Посочените стриймове са с илюстративна цел и са ограничени по геолокация за Великобритания.

Както виждате, технологията е налице и още в този момент можете да я изпробвате през актуалния YouTube addon за Kodi 17, ако сте разрешили inputstream.adaptive функционалността в настройките на въпросния addon.

? Откъде да си набавя inputstream.adaptive?  Ами докато се появи в официалните хранилища, можете да го инсталирате през бинарното хранилище на kodinerds.net.

? Има ли повече информация по темата?  ТУК, например.
[Изображение: PEnGs.jpg]
? Това означава ли, че най-сетне ще може да се направи addon за HBOGO ? Вероятно ДА. В този случай се използва Майкрософтската технология, където манифеста е ism:
[Изображение: BUL.jpg]
хубаво инфо
Очаквайте скоро... нативна поддръжка на Netflix: https://github.com/asciidisco/plugin.video.netflix  А точно колко скоро - няма да е по-рано от 2018г., когато ще излезе Kodi v18.

Цитат:Kodi 17 only supports decrypting via Widevine. But Netlfix (like Amazon these days) follows a "decrypt and decode" DRM policy. Unfortunately inputstream.adaptive and Kodi 17 did not support decoding by Widevine. They´ve changed that in Kodi-Agile (and the inputstream.adaptive agile branch). That´s why it also isn't possible with the Kodi 18 mainline project to use the plugin (which will change, as changes in Agile will be merged back one day).
Ако настроите InputStream.Adaptive на предпочитаното от вас максимално качество/резолюция, той ще се опита да го спазва във всички добавки, които разчитат на него за видео възпроизвеждане:
[Изображение: inputstreamadaptive.png]
InputStream.Adaptive поддръжа също и TTML субтитри, разпространявани чрез манифестите mpd, ism,... паралелно с видео-потока. Тези субтитри използват глобалните настройки за субтитри в Коди и за момента, липсват настройки за тях в самия InputStream.Adaptive.
Намерих много добро демо за тестване на inputstream.adaptive приставката с различни конфигурации на Smooth Streaming, HLS и MPEG-DASH. 
С некриптираните стриймове няма проблем и работят перфектно, но криптираните въобще не мога да ги подкарам. Те са достъпни за всички на сайта https://demo.castlabs.com/ 
Ако някой има успех да подкара  MPEG-DASH DRM и да каже как.

Код:
#EXTM3U
#EXTINF:-1,APPLE HLS - Некриптирана - РАБОТИ
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=hls
https://demo.cf.castlabs.com/media/prestohls/master.m3u8?v=5.1.8

#EXTINF:-1,MPEG-DASH - Некриптирана - РАБОТИ
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
https://demo.cf.castlabs.com/media/prestodash/Manifest.mpd?v=5.1.8

#EXTINF:-1,SMOOTH STREAMING - Некриптирана - РАБОТИ
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=ism
https://usp-demo.castlabs.com/video/piff/31245689abb7c52a3d0721447bddd6cd_Tears_Of_Steel.ism/Manifest?v=5.1.8

#EXTINF:-1,MPEG-DASH DRM - Криптирана - НЕ РАБОТИ
#KODIPROP:mimetype=application/vnd.apple.mpegurl
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/|User-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36&dt-custom-data=eyJ1c2VySWQiOiJwdXJjaGFzZSIsInNlc3Npb25JZCI6InAwIiwibWVyY2hhbnQiOiJzaXgifQ==&Origin=https://demo.castlabs.com&Referer=https://demo.castlabs.com|R{SSM}|J
https://demo.cf.castlabs.com/media/bbb_abr/Manifest_new.mpd?v=5.1.8
Това на castlabs inputstream на Коди не го пуска, пробвай vlc ще го отвори без проблем, аз също имах подобен проблем през mtelnow
Какво им е особеното, че да не искат да работят?
С последните промени, които направих в license_key темплейта (показан по-долу) успявам да си изпратя заявката за лиценз, но лицензния сървър нещо не харесва тона с който му говоря и ми казва "Аре чупката" т.е. "HTTP error 500" Sad .


Код:
#EXTINF:-1,MPEG-DASH DRM - Криптирана - НЕ РАБОТИ
#KODIPROP:mimetype=application/vnd.apple.mpegurl
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/|User-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36&dt-custom-data=eyJ1c2VySWQiOiJwdXJjaGFzZSIsInNlc3Npb25JZCI6InAwIiwibWVyY2hhbnQiOiJzaXgifQ==&Origin=https://demo.castlabs.com&Referer=https://demo.castlabs.com|R{SSM}|J
https://demo.cf.castlabs.com/media/bbb_abr/Manifest_new.mpd?v=5.1.8