Video decoding Video yang dipercepat pada browser. Apa itu mungkin?

8

Katakanlah saya memiliki Rpi (B +) dan ingin bertindak sebagai Kios, di mana video akan diputar dalam satu lingkaran dalam layar penuh. Video akan berubah secara terprogram, jadi saya perlu API untuk mengontrolnya. Saya pernah melakukan ini sebelumnya, di mesin x86, tanpa masalah, di aplikasi berbasis web (Javascript dan HTML5).

Masalah yang saya alami adalah bahwa NO browser (tampaknya) menggunakan GPU untuk memecahkan kode video. Acara Browser Web mereka yang seharusnya mendukung "decoding video yang dipercepat perangkat keras" tidak dapat memutar video. Saya baru saja menginstal Raspbian (NOOBS) dan browser setidaknya harus memutar video yang sama seperti yang mereka lakukan di video.

Omxplayer menjalankannya dengan baik, tetapi berkedip ketika loop dan menampilkan beberapa teks ("Cari ...").

Karena ini akan menjadi proyek yang akan melibatkan sekitar 400 Raspberry PI (jika dapat melakukan apa yang saya butuhkan) di lokasi yang berbeda, saya benar-benar membutuhkan solusi yang solid.

Apakah ada cara memiliki video perulangan, GPU dipercepat, pada browser di RPi?

EDIT: Saya mencoba menyematkan video mp4 / h.264 dengan tag biasa. Setiap browser gagal memutar video. Epiphany dan Chromium hanya menampilkan "area" hitam dan kontrol. Tidak ada video Midori mendapat beberapa bingkai, tetapi cpu puncak. Youtube / Vimeo juga gagal dimainkan.

EDIT 2: Setelah saya melakukan instalasi baru dan mengatur memori GPU ke 128MB bukannya 64MB default saya berhasil memutar video, lancar, di Epiphany. CPU tidak mencapai 100% (70% -95%). Meskipun, ketika saya mencoba video full hd, kinerjanya menurun drastis (<1 FPS) tetapi CPU hanya mencapai 50%, kemacetan mungkin karena memori. Saya akan memilih RPI2 dan mengujinya.

Mario Cesar
sumber
Anda harus lebih spesifik tentang sumber video di sini - cara disandikan dan cara menyematkannya. "Decoding video yang dipercepat perangkat keras" Saya yakin tidak berlaku untuk setiap metode penyandian yang mungkin, karena GPU itu sendiri tidak dapat melakukan itu.
goldilocks
Saya akan mengambil semua format video / codec yang akan berjalan dengan lancar di browser web. Sumbernya hanyalah sebuah file, cara file itu sampai ke disk adalah cerita lain.
Mario Cesar
Yang paling mengganggu saya adalah mereka bisa memutar video di browser, dan, secara teoritis video yang sama, dan browser yang sama tidak bisa di komputer saya. Mungkinkah masalahnya saya menggunakan RPI 1 (B +) dan mereka bisa menggunakan RPI 2?
Mario Cesar
Tidak ada 2 pada waktu itu. Jika Anda benar-benar yakin telah menduplikasi kotak uji dan tidak cocok, Anda mungkin kurang beruntung. Saya akan berpikir bahwa .h264 yang diputar melalui HTML5 di Raspbian epiphanyakan menggunakan "decoding video yang dipercepat perangkat keras" jika ada.
goldilocks
1
Coba dan gunakan nginx untuk meng-host file video Anda dan kemudian Anda harus dapat menanamkan src sebagai tag video HTML5 di browser. Saya pikir rendering perangkat keras telah dipecahkan sejak lama. Saya tidak menggunakan X sama sekali sehingga tidak ada komentar lebih lanjut. Saya yakin Anda dapat mematikan OSD di omxplayer. Bagian flicker sangat memalukan, tidak yakin bagaimana mengatasinya dengan omx. Ini berkaitan dengan driver memuat ulang dan membangun kembali file.
Piotr Kula

Jawaban:

5

Ya, itu mungkin, saya memulai proyek ini beberapa waktu yang lalu tetapi saya harus berhenti karena waktu yang tidak mencukupi.

Ini adalah hasil terbaik yang bisa saya dapatkan (1080p): https://youtu.be/fVM1GRDhXGw . Ini didasarkan pada perpustakaan terbuka ini: https://github.com/carlonluca/pi . Beberapa info lebih lanjut di sini .

Demo menggunakan perpustakaan itu dengan WebKit1 di QtWebKit, semua berjalan tanpa X11. Tampaknya jauh lebih sulit untuk melakukannya dengan WebKit2. Sayangnya kualitasnya tidak sempurna, saya tidak tahu apakah mungkin untuk memperbaikinya. Namun saya tidak melihat mengapa menggunakan browser di tempat pertama jika keinginannya hanya untuk memutar video layar penuh.

Perhatikan bahwa saya adalah penulis proyek, jadi saya melaporkannya hanya karena saya mengetahuinya. Mungkin ada sejuta pendekatan lain.

Luca Carlon
sumber
Terima kasih sudah berbagi! Apakah Anda ingin bergabung dengan blog komunitas kami yang akan datang :)
Ghanima