Decodifica video accelerata GPU su un browser. È possibile?


8

Diciamo che ho un Rpi (B +) e voglio che funzioni come Kiosk, in cui un video verrà riprodotto su un loop a schermo intero. Il video cambierà in modo programmatico, quindi ho bisogno di un'API per controllarlo. L'ho già fatto in precedenza, su macchine x86, senza problemi, in un'applicazione basata sul web (Javascript e HTML5).

Il problema che sto riscontrando è che NESSUN browser utilizza (apparentemente) la GPU per decodificare il video. Eventuale browser Web che dovrebbe supportare "Decodifica video con accelerazione hardware" non può riprodurre video. Ho appena installato Raspbian (NOOBS) e il browser dovrebbe almeno riprodurre lo stesso video che fanno sul video.

Omxplayer funziona bene, ma sfarfalla quando scorre e mostra del testo ("Cerca ...").

Dato che questo sarebbe un progetto che coinvolgerà circa 400 Raspberry PI (se può fare ciò di cui ho bisogno) in diverse località, ho davvero bisogno di una soluzione solida.

C'è un modo per avere un video in loop, accelerato con gpu, su un browser su RPi?

EDIT: ho provato i video mp4 / h.264 incorporati con un tag normale. Ogni browser non riesce a riprodurre il video. Epifania e Cromo mostrano solo una "area" nera e i controlli. Nessun video. Midori ottiene alcuni frame, ma la cpu supera. Anche Youtube / Vimeo non riesce a giocare.

EDIT 2: Dopo aver eseguito una nuova installazione e impostato la memoria GPU su 128 MB anziché i 64 MB predefiniti, sono riuscito a riprodurre un video, senza problemi, su Epiphany. La CPU non ha raggiunto il 100% (70% -95%). Anche se, quando ho provato un video full hd, le prestazioni sono diminuite notevolmente (<1 FPS) ma la CPU era solo al 50%, il collo di bottiglia era probabilmente la memoria. Prenderò un RPI2 e lo testerò.


Devi essere più preciso su quale sia esattamente la sorgente video: come è codificata e come l'hai incorporata. "Decodifica video con accelerazione hardware" Sono sicuro che non si applica a tutti i possibili metodi di codifica, poiché la GPU stessa non può farlo.
riccioli d'oro

Prenderò qualsiasi formato / codec video che verrà eseguito senza problemi su un browser web. La fonte è solo un file, il modo in cui il file arriva sul disco è un'altra storia.
Mario Cesar,

Ciò che mi preoccupa di più è che possono riprodurre un video su un browser e, in teoria, lo stesso video e lo stesso browser non possono sulla mia macchina. Il problema potrebbe essere che sto usando RPI 1 (B +) e potrebbero usare un RPI 2?
Mario Cesar,

Non c'erano 2 in quel momento. Se credi davvero di aver duplicato il caso di test e non è all'altezza, probabilmente sei sfortunato. Penserei che .h264 riprodotto tramite HTML5 su Raspbian epiphanyimplicherebbe una "decodifica video con accelerazione hardware" se non altro.
riccioli d'oro

1
Prova a utilizzare nginx per ospitare i tuoi file video e quindi dovresti essere in grado di incorporare src come tag video HTML5 sul browser. Pensavo che il rendering hardware fosse stato risolto molto tempo fa. Non uso affatto X, quindi nessun ulteriore commento. Sono sicuro che puoi disattivare l'OSD su omxplayer. La parte tremolante è un peccato, non so come superarla con omx. Ha a che fare con il driver che ricarica e esegue il rebuffering dei file.
Piotr Kula,

Risposte:


5

Sì, è possibile, ho iniziato questo progetto qualche tempo fa ma mi sono dovuto fermare a causa di un tempo insufficiente.

Questo è il miglior risultato che ho potuto ottenere (1080p): https://youtu.be/fVM1GRDhXGw . Si basa su questa libreria aperta: https://github.com/carlonluca/pi . Altre informazioni qui .

La demo usa quella libreria con WebKit1 in QtWebKit, tutto in esecuzione senza X11. Sembra molto più difficile farlo con WebKit2. Sfortunatamente la qualità non era perfetta, non so se sia possibile migliorarla. Tuttavia, non vedo perché utilizzare un browser in primo luogo se il desiderio è solo quello di riprodurre un video a schermo intero.

Nota che sono l'autore del progetto, quindi lo sto segnalando solo perché lo so. Potrebbero esserci un milione di altri approcci.


Grazie per aver condiviso! Ti piacerebbe unirti al nostro prossimo blog della community :)
Ghanima
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.