Pourquoi les lecteurs flash consomment-ils jusqu'à 20 fois plus de CPU que le lecteur VLC pour afficher exactement le même fichier vidéo?

8

Lorsque je joue une vidéo (H264 MPEG4 AVC 320x180) en ligne (dans Firefox ou Chrome), elle utilise jusqu'à 100% de CPU, mais si je la télécharge (exactement le fichier lu) et utilise VLC - cela ne prend que 5% (6 % au maximum). Pourquoi cela se produit-il et que puis-je faire pour rendre les joueurs en ligne plus efficaces?

PS: La carte vidéo est Intel GMA X4500HD.

Ivan
la source
Le fichier dans le navigateur est-il lu en utilisant Flash ou HTML5? Quels sont les chiffres pour jouer dans Totem (en utilisant GStreamer)?
8128
J'ai déjà dit que c'était Flash. Je n'ai pas de Totem à essayer, mais je pense que ce ne sera pas bien pire que VLC.
Ivan
Je suppose que Flash-plugin + Browser (Firefox, Chrome, ..) est un système beaucoup plus complexe qu'un lecteur de film comme VLC. Je ne veux pas dire que les lecteurs de films sont simples, mais je suppose qu'il y a moins de composants qui interagissent que dans un navigateur.
math
L'utilisation intensive du processeur n'est pas limitée à la vidéo mais s'applique également à la diffusion audio (par exemple les stations RADIO) dans Firefox ou Chromium; le streaming en VLC est tellement plus léger en comparaison!
nutty about natty

Réponses:

6

La raison probable est que le plugin Flash ne peut profiter d'aucune sorte d'accélération matérielle prise en charge par le pilote de votre carte graphique. Tout est ensuite décodé à l'aide du CPU.

Les pilotes Intel présents dans votre système permettent à VLC d'utiliser votre GPU au lieu de votre CPU pour rendre le film avec une accélération vidéo qui est bien meilleure pour des raisons évidentes.

De plus, l'API d'accélération matérielle Flash (Stage Video) nécessite que les développeurs ajoutent réellement leur prise en charge dans leurs SWF de lecteur vidéo.

Si le lecteur vidéo n'a pas de support intégré, même si la version de Flash que vous avez a VA activée et que vos pilotes le prennent en charge (il semble que ce soit le cas puisque VLC l'utilise apparemment), votre vidéo sera décodée via le CPU.

Bruno Pereira
la source
Mais Flash sur Linux ne devrait-il pas pouvoir utiliser l'accélération matérielle graphique depuis la version 10.2 beta? Voir phoronix.com/…
nem75
@ nem75 pas si le lecteur vidéo que vous utilisez a été compilé sans support ou si le plugin Flash n'utilise pas les fonctionnalités d'accélération de votre carte vidéo, rappelez-vous que nous parlons ici d'un Intel, pas d'un Nvidia ou d'un ATI.
Bruno Pereira