Closed zajdee closed 6 years ago
Otestuju to jakmile se připojim přes ssh.
Zkouseno na RPi s OpenElec, Kodi 15.x a bohuzel nefunkcni.
Dnes vyzkoušeno na další RPi+OSMC a iVysilání po patchi funguje.
Rpi2 + LibreElec, Kodi 16.1, patch nefunguje..
Potvrzuju, na KODI 16 skutečně nefunguje. Bude to zřejmě jiným přehrávačem (KODI 17 má VideoPlayer, KODI -16 DVDPlayer, který nejspíš očekává jen lokální playlisty). Pro KODI 16 a starší by zafungovalo stažení nejlepšího možného playlistu s chunky a jeho přepsání - změna URL z relativní adresy na adresy absolutní. To by si nicméně vyžádalo mnohem víc práce (a času).
Tak jsem tu opravu dnes aplikoval na OpenElec 8.0.4 a vse jede bez problem. Super prace.
rbp1-mediacenter-osmc 17.6.0-24
alias 17.6. na Pi Zero funguje podle předpokladu taky.
Co mi přijde divné - plugin je z 2018-01-28, mediacenter je ze začátku února, od poloviny března neproběhla ani žádná jiná aktualizace - ale chyba se projevila až někdy před týdnem..? (Aneb ještě nějaká změna zvenku např. na ČT API, která to způsobila?)
Já zaregistroval chybu až před pár dny. Předpokládám, že se něco změnilo na straně ČT. Je fajn, že už je patch pro Kodi 17 a více; doufejme, že bude brzo opraveno i pro starší (a lepší :) verze.
Vysvětlení je tady: https://www.lupa.cz/aktuality/ceska-televize-bude-od-kvetna-vyuzivat-noveho-poskytovatele-ivysilani/
CDN77 kromě jiného zvýšila kvalitu vysílaných i zaznamenaných pořadů na 1080p, což je fajn (kromě toho, že na 8 Mbps ADSL lince se přehrávání trhá :-)). Nevýhoda pak je v tom, že se nejspíš mírně změnilo API.
Chyba se začala objevovat 28.4. v podvečer (změna určitě nastala na straně ČT). Patch funguje na LibreElec 8.2.5 (Kodi 17.x) a Odroid-C2.
na LE 8.2 funkční. Děkuji....
Taky potvrzuji, patch funguje, freshinstall LE 8.2.5.
Potvrzuji funkčnost i z FreeBSD + Kodi 17.6. Možná by autoři mohli zveřejnit tento mikrofix alespoň pro ty, co mají aktuální Kodi. Zatím co ostatní budou čekat na nějakej geniální fix, aktuální již můžou v klidu čučet na ČT.
Zkoušel jsem ohackovat stejně jako zajdee na starém OpenELEC 5.0.8.0 (Odroid U3 a Kodi 14), ale bohužel nefunguje. Nakonec jsem ohackoval takto a jede:
def playUrl(title, url, image, subtitles=False):
try:
xlistitem = xbmcgui.ListItem(title, iconImage="DefaultVideo.png", path=url)
except:
xlistitem = xbmcgui.ListItem(title, iconImage="DefaultVideo.png", )
xlistitem.setInfo("video", { "Title": title })
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
playlist.clear()
page = urllib.urlopen(url)
playlist.add(page.geturl(), xlistitem)
xbmcPlayer = xbmc.Player()
xbmcPlayer.play(playlist)
if subtitles:
while not player.isPlaying():
xbmc.sleep(2000)
player.setSubtitles(_subtitles_path_)
Doufám, že pomůže někomu se starým Kodi -- 14, 15, 16?
Edit1: odsazení
Edit2: odstranění player_type = xbmc.PLAYER_CORE_AUTO
Pokud to dobre chapu, tak puvodni odstavec z radku 282 az 292 nahradit tim tvym? Zkousel jsem to na OpenElec 6.0.3 a rovnou to napise chybu doplnku a ani ho nespusti.
V logu to haze tuto chybu:
19:47:37 40.503319 T:839496768 NOTICE: -->Python Interpreter Initialized<-- 19:47:37 40.530392 T:839496768 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <type 'exceptions.SyntaxError'> Error Contents: ('invalid syntax', ('/storage/.kodi/addons/plugin.video.ivysilani/addon.py', 282, 3, 'def playUrl(title, url, image, subtitles=False):\n')) SyntaxError: ('invalid syntax', ('/storage/.kodi/addons/plugin.video.ivysilani/addon.py', 282, 3, 'def playUrl(title, url, image, subtitles=False):\n')) -->End of Python script error report<-- 19:47:37 40.567009 T:1967169536 ERROR: GetDirectory - Error getting plugin://plugin.video.ivysilani/ 19:47:37 40.569096 T:1967169536 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.ivysilani/) failed 19:47:37 40.595860 T:839496768 NOTICE: Thread BackgroundLoader start, auto delete: false 19:47:44 47.688091 T:831108160 NOTICE: Thread LanguageInvoker start, auto delete: false 19:47:44 47.712891 T:1967169536 ERROR: Control 50 in window 10025 has been asked to focus, but it can't
Oprava: Potvrzuju funkčnost v Kodi 16.1 s opraveným odsazením. Díky moc! Volbu kvality jsem detailněji nezkoumal, ale mám nastavené 720, a přehrávané video hlásilo 720 :)
Ano, pouze nahradit funkci playUrl. V puvodním textu jsem neměl odsazení o 4 mezery. Upravil jsem. Celý addon.py zde: https://pastebin.com/242e7sA0
Edit: doporučuji vyzkoušet #23, bez player_type = xbmc.PLAYER_CORE_AUTO
Potvrzuji funkcnost na KODI 15 (OpenElec 6.0.3).
Děkuji @zajdee a potvrzuji funkčnost nahraní řádku
player.play(playlist_file_path, li)
za
player.play(url, li)
Přehrávání začalo fungovat. Kodi 17.6 (Xbian, RPI3)
@mencak Zkoušel jsem také nahradit celý addon.py tím z pastebinu, ale při pokusu něco přehrát jsem dostal chybu:
File "/storage/.kodi/addons/plugin.video.ivysilani/addon.py", line 294, in playUrl\n player_type = xbmc.PLAYER_CORE_AUTO\n', "AttributeError: 'module' object has no attribute 'PLAYER_CORE_AUTO'\n"]
@mr-flibble zkus(te) prosím https://github.com/kodi-czsk/plugin.video.ivysilani/pull/23 . vypada to, xbmc.PLAYER_CORE_AUTO se kodi 17 nelíbí. PR23 jsem testoval s Kodi 14 a bez problémů.
@mencak díky za odkaz. Potvrzuji že přehrávání s #23 na Kodi 17.6 (Xbian, RPI3) funguje
Ahoj, také mám problém s ivysíláním na RPi s poslední verzí LibreElec ( kodi 17.6 ). ( Na PC s kodi funguje OK ). Jen naprosto netuším, jak co ##kde opatchovat, jak si píšete výše. Mohu poprosit trochu polopaticky o postup ? s Linuxem nemám žádné zkušenosti. Předem díky.
Pro informaci všem: Česká Televize se vrátila s iVysíláním k O2 (https://www.lupa.cz/aktuality/ceska-televize-vypovedela-smlouvu-s-provozovatelem-ivysilani-firmou-supernetwork/). Už upravené pluginy by snad stále mohly fungovat, a těm z vás, kterým se plugin nepodařilo upravit, by mělo přehrávání zase začít fungovat.
Jestli je to stav dočasný nebo trvalý, to nevíme.
V registru smluv se objevila smlouva s O2 na provoz iVysílání do ledna 2022. Dokud tedy O2 neudělá nějakou změnu v infrastruktuře, bude dál fungovat původní plug-in. Navrhuji tedy tuto issue uzavřít a děkuji všem za účast.
Dobré dopoledne,
OSMC
rbp2-mediacenter-osmc
, verze17.6.0-24
(Raspberry Pi). iVysilani plug-in verze2018-01-28 [1.3.5]
.Při pokusu o přehrání jakéhokoli videa se stáhne master playlist na disk (do
/home/osmc/.kodi/userdata/addon_data/plugin.video.ivysilani/playlist.m3u8
).Pak se spouští přehrávač v OSMC. Ten spouští knihovní funkce ffmpegu, které se pokouší stáhnout playlisty jednotlivých kvalit. To se ale nepodaří, protože se používá relativní URL vůči existujícímu master playlistu (tedy lokální disk), kde playlisty kvalit s odkazem na jednotlivé media chunky nejsou - a i kdyby byly, tak v playlistu s chunky absolutní URL nejsou, tedy problém by se opakoval.
Výsledek je, že nehraje žádné video z iVysílání.
Jak jsem to ohackoval:
Player v OSMC umí master playlist zpracovat, takže si sám vybere nejvyšší kvalitu, stáhne playlist s chunky z webu a pak začne stahovat jednotlivé chunky a hrát je.
Jak by to šlo líp:
Data pro debugging:
Master playlist:
Playlist konkrétní kvality:
Debug log OSMC (vybrané záznamy):
Informativní log z ffprobe, stejná chyba jako při přehrávání v OSMC (
No such file or directory
):