In Rilievo Discussione su Rai Play

Comunque ho notato che da Safari (da OS X) mi carica il player Flash, da Chrome quello HTML5 o_O. Da mobile - ovviamente - sempre e solo quello in HTML5. Questo sul materiale on demand (e dire che c'è un apposito check in javascript proprio per il caso Safari su OS X.. mah.). Sulle dirette live quello HTML5 anche da Safari.

Ci vuole coraggio per guardare il sorgente dei siti Rai, sono un disastro
 
Ahah, gli script JS non sono malvagi (per quel che ne capisco, poco) e quasi tutti sono di terze parti (tolto il core di RaiPlay) xD

Gli script JavaScript (non di terzi) sono la parte peggiore, fidati. Da sviluppatore JavaScript con un po' di esperienza, avrei qualcosa da ridire su ogni riga. Se esiste una best practice, una convenzione o una regola per lo stile del codice che si potrebbe seguire, stai certo che chi ha sviluppato i siti Rai non ne ha mai sentito parlare, e se lo ha fatto ha poi deciso di fare l'opposto. Poi, oltre ad essere pieno di errori, imprecisioni e di uso di tipi deprecati, il codice non è per nulla ottimizzato in termini di prestazioni.
Ma mi fermo che siamo già OT...
 
Gli script JavaScript (non di terzi) sono la parte peggiore, fidati. Da sviluppatore JavaScript con un po' di esperienza, avrei qualcosa da ridire su ogni riga. Se esiste una best practice, una convenzione o una regola per lo stile del codice che si potrebbe seguire, stai certo che chi ha sviluppato i siti Rai non ne ha mai sentito parlare, e se lo ha fatto ha poi deciso di fare l'opposto. Poi, oltre ad essere pieno di errori, imprecisioni e di uso di tipi deprecati, il codice non è per nulla ottimizzato in termini di prestazioni.
Ma mi fermo che siamo già OT...
Ahah, allora ritiro tutto xD come ho detto ne capisco davvero poco di JS, tnx della delucidazione :p
 
Comunque ho notato che da Safari (da OS X) mi carica il player Flash, da Chrome quello HTML5 o_O. Da mobile - ovviamente - sempre e solo quello in HTML5. Questo sul materiale on demand (e dire che c'è un apposito check in javascript proprio per il caso Safari su OS X.. mah.). Sulle dirette live quello HTML5 anche da Safari.
E' parecchio assurdo, su Windows non riesco in alcun modo a far partire il player flash su Chrome, Firefox, Edge, Opera, parte sempre quello html5.

Ho installato l'ultima versione di Safari per Windows (che purtroppo risale al 2012) parte il player flash e finalmente aggancio il 1080p.
 
E' parecchio assurdo, su Windows non riesco in alcun modo a far partire il player flash su Chrome, Firefox, Edge, Opera, parte sempre quello html5.

Ho installato l'ultima versione di Safari per Windows (che purtroppo risale al 2012) parte il player flash e finalmente aggancio il 1080p.
Ah, quindi è Safari il problema.. lol. Se ho ben capito il player html5 è di terze parti (Matteo può darmi conferma), magari è un bug suo e/o la Rai usa una versione di ottantanni fa.. Sarebbe da dirglielo, ma non saprei come.

E' anche assurdo che utilizzino qualità dello streaming limitate col player HTML5 soprattutto alla luce che sono disponibili in HLS le stesse identiche che invece utilizzanno correttamente tutte in HDS col player Flash, eh..
 
Non è nel tutto assurdo, su Netflix web lo streaming HTML5 in 1080p funziona solo su Safari e Microsoft Edge. Tutti gli altri browser vanno a 720p. Cioè evidentemente Netflix ha deciso di limitare il 1080p a browser per cui è certa che ci sia un supporto decente per il Full HD (?)

Controllerò meglio comunque
 
Non è nel tutto assurdo, su Netflix web lo streaming HTML5 in 1080p funziona solo su Safari e Microsoft Edge. Tutti gli altri browser vanno a 720p. Cioè evidentemente Netflix ha deciso di limitare il 1080p a browser per cui è certa che ci sia un supporto decente per il Full HD (?)

Controllerò meglio comunque
Questa non la sapevo, lol.. comunque non si sono Netflixati, ad occhio. Da Safari non posso controllare perché carica il player in Flash, come già assodato, ma da Edge in macchina virtuale il player è HTML5 sì, ma comunque richiede solo fino a 2400 kbps xD non si sono ispirati..
 
Ok ho capito, ma è complicato. Scrivo giù tutto prima che mi dimentichi.

Il tutto inizia da una funzione "checkTypeMediapolisfunction". Belli i nomi eh? Questa decide in sostanza il formato che deve essere richiesto al server. I tre formati sono "native" (cioè il file MP4 crudo), flash (cioè streaming adattivo con manifest f4m con Flash Player) e "mon" (cioè streaming HLS HTML5, sempre adattivo). La funzione, per decidere i formati, interroga il player (MediaelementJS, molto noto e diffuso) che decide di richiedere "native" se il tag video HTML5 è supportato, "flash" se MediaelementJS (mejs) ha individuato il supporto a Flash nel browser o "mon" se c'è il supporto a HLS nel browser.

I tre formati non si escludono. Un browser moderno li avrà tutti e tre, uno antico supporterà solo Flash, uno che è una via di mezzo soltanto "native" (cioè quel succoso file MP4). Ora, succedono due cose strane:

1) Safari: quando mejs controlla il supporto a HLS nel browser, usa un'altra libreria JavaScript che si chiama hls.js (e che si occupa di gestire appunto lo stream HLS). Questa libreria funziona su Safari, ma è in beta. La Rai ha evidentemente copiato codice da qua, dove viene escluso il supporto a HLS perché è in beta. Per questo il formato scelto è il successivo cioè flash

2) quando i formati supportati sono individuati, viene fatta richiesta al relinker mediapolis (chi sa come funzionano sa quanto si possano odiare), passando come parametro i formati. I formati sono sempre in questo ordine: mon (HLS), flash, native. Quando il server se ne trova più di uno, sceglie il primo (strategia sofisticata eh?). Quindi, quando c'è il supporto a HLS, il client chiede il relinker inviando come primo formato HLS, e il server ritorna l'URL m3u8, con bitrate che però si ferma al massimo a 2400 kbps. Quando invece "flash" è il primo formato (cioè soltanto quando HLS non c'è), il manifest include tutti i bitrate.
Lo streaming HLS si può però forzare richiedendo bitrate più alti, e funziona perfettamente. A questo punto mi vengono da pensare due opzioni: c'è un errore del server che ritorna l'URL sbagliato quando si richiede HLS; oppure il server HLS è povero e non riuscirebbe a gestire gli stream HLS in FHD, per disponibilità di banda, risorse CPU o chissà cos'altro. Considerando soprattutto che un browser con HLS e Internet a 5 Mbps ce l'hanno praticamente tutti in Italia.

In conclusione: si potrebbe avere il Full HD con HLS? Direi di sì... e forse anche solo con un'estensione del browser che maneggi un po' le funzioni Rai :5eek:
 
Ultima modifica:
Chapeau. Analisi ottima, hai scoperto tutti gli arcani di questo demoniaco sistema direi..
Io ho provato a chiedere su Twitter un indirizzo mail per segnalare ""problemi"" sul sito, ma ovviamente no answers..
Secondo me, se hai voglia ovviamente, potresti provare a scrivere all'assistenza dell'app (tanto credo sviluppino insieme) mobile.development@rai.it spiegandogli tutto il pippozzo... magari gli dai anche una mano, da quel che ho capito non sono proprio delle cime xD
 
Ok questa è una cosa che possiamo fare noi utenti? O è solo una cosa che possono fare loro?
Finché non cambiano la logica sul server il Full HD arriverà SOLO a chi ha Flash Player e su un browser vecchio.
Se però arrivi all'URL dello stream, aggiungi il bitrate che vuoi e lo metti in VLC... Lo puoi avere anche tu
 
Finché non cambiano la logica sul server il Full HD arriverà SOLO a chi ha Flash Player e su un browser vecchio.
Se però arrivi all'URL dello stream, aggiungi il bitrate che vuoi e lo metti in VLC... Lo puoi avere anche tu

Ok grazie per la spiegazione, non fa tanto per me, ma comunque mi passerò il tempo.. :badgrin:
 
A proposito di HD, a parte i browser, mi pare che la visione sia da app da smart tv Samsung che via Chromecast sia in HD (magari 720p) o mi sbaglio?
 
A proposito di HD, a parte i browser, mi pare che la visione sia da app da smart tv Samsung che via Chromecast sia in HD (magari 720p) o mi sbaglio?
Nell'app lo streaming dovrebbe essere adattivo.
Via Chromecast sinceramente mi sembra che prenda la qualità più bassa (0.8 Mbps) perché è veramente pessima. Ma non ho verificato..
 
Nell'app lo streaming dovrebbe essere adattivo.
Via Chromecast sinceramente mi sembra che prenda la qualità più bassa (0.8 Mbps) perché è veramente pessima. Ma non ho verificato..


Beh stamane ho guardato elementary (rai2HD )con iphone e chromecast, la qualità, così a vista, era più che buona, si avvicinava molto al 720p.....
 
Nell'app lo streaming dovrebbe essere adattivo.
Via Chromecast sinceramente mi sembra che prenda la qualità più bassa (0.8 Mbps) perché è veramente pessima. Ma non ho verificato..

In teoria il flusso inviato alla Chromecast potrebbe essere lo stesso di quello dell'app, cioe' se e' adattivo puo' capitare che si vede bene oppure no secondo la banda a disposizione. Non so se per esempio, essendo l'app su uno smart phone parta con la risoluzione sufficiente per uno schermo piccolo, pero' guardando su lcd del tv non si vede male.
 
Indietro
Alto Basso