30 votes

Existe-t-il un moyen de répartir les tâches d'encodage x264 sur plusieurs ordinateurs (pour augmenter la vitesse d'encodage) ?

Quelqu'un connaît-il une solution actuelle et active pour encoder des vidéos x264 sur plusieurs ordinateurs (via le réseau) afin d'augmenter les FPS d'encodage ?

Des points pour la multiplateforme et l'open source, mais pour votre information, j'utilise habituellement Windows.


Les programmes dont j'ai entendu parler, et pourquoi je ne pense pas qu'ils soient adaptés :

  • x264farm : Non développé activement. Bonne interface, mais ne supporte pas l'encodage en deux passes, et échoue avec les nouvelles versions de x264.
  • ELDER : Encore une fois, pas activement développé, mais mon problème était qu'il ne fonctionnait pas avec les nouvelles constructions x264, et qu'il était très difficile à configurer (lire : a cessé de fonctionner de manière aléatoire).

Bien que je n'aie pas absolument besoin d'un programme en cours de développement, j'aimerais en avoir un qui supporte l'encodage à deux passages et travaille avec new(er) x264 builds .


Informations complémentaires : Jusqu'à présent, j'ai offert (et attribué !) deux primes distinctes sur cette question depuis que je l'ai postée pour la première fois il y a plus de deux ans, et je n'ai toujours pas trouvé de solution à ce problème. Ce que je recherche, c'est un programme simple qui me permette d'encoder des vidéos x264 en utilisant la puissance de traitement de plusieurs ordinateurs connectés en réseau local. De plus, ce serait bien s'il fonctionnait avec les nouvelles versions de x264 et s'il supportait l'encodage à deux passages.

Si quelqu'un a une réponse actualisée ou une nouvelle solution à ce problème, veuillez la poster et elle sera prise en considération.


Mise à jour de 2016 :

Après une grande partie de mon expérience professionnelle dans le domaine de la vision par ordinateur/machine, je me suis rendu compte que les frais généraux associés à la grande quantité de données/mémoire partagées, et le goulot d'étranglement potentiel qu'ils représentent, pourraient l'emporter sur les avantages potentiels.

Bien que j'aimerais toujours trouver quelque chose qui me permettrait d'exploiter la puissance de calcul inactive de plusieurs appareils, pour l'instant, les encodeurs modernes basés sur le GPGPU constituent une bien meilleure approche si vous avez besoin d'un encodage amélioré/en temps réel. C'est ce que proposent la plupart des plateformes d'encodage vidéo basées sur le cloud (ce qui est une autre alternative si vous êtes adepte du SaaS ou du cloud computing), mais à plus grande échelle.

0 votes

Je travaille toujours sur ce sujet. x264farm est juste le gestionnaire de rendu, il semble que vous devriez être en mesure de placer n'importe quelle version de x264 que vous voulez sur les pc esclaves. Avez-vous essayé, et quelles erreurs se sont produites si vous l'avez fait ?

1 votes

1 votes

Je réalise que c'est un vieux fil de discussion, mais je pense que je devrais partager mon expérience personnelle. Ne distribuez pas un travail à plusieurs machines, c'est une perte de temps, distribuer à plusieurs cœurs diminue déjà les performances, et il y a plusieurs processeurs physiques, puis plusieurs machines, chacune avec un problème d'E/S et de latence. Ceci étant dit, utilisez-le uniquement lorsque c'est vraiment nécessaire, s'il y a plusieurs fichiers (travaux), distribuez-les par fichier, je crois que Squeeze peut distribuer la charge sur plusieurs machines, mais c'est assez cher.

6voto

Ivan Vučica Points 903

Vous pourriez rendre des morceaux séparés de la vidéo, et utiliser VirtualDub pour assembler le tout avec son mode Copie (où il ne fait aucun encodage). Il ne s'agit pas d'un véritable encodage distribué ou autre, mais les solutions les plus simples sont parfois les plus efficaces.

5 votes

Encore une fois, le seul problème est qu'il y a sera une perte de qualité, due à l'emplacement des images I/B lors du rendu de la vidéo. Il faudrait utiliser un algorithme de détection de scène pour déterminer où diviser la vidéo, et d'une manière ou d'une autre, il faudrait diviser la vidéo exactement à cette image...

0 votes

VirtualDub dispose de ces icônes "vertes et rouges" qui devraient servir à la détection du changement de scène. Si ma mémoire d'il y a quelques années est bonne, cela fonctionnait très bien. Mais là encore, je suis un amateur en matière de vidéo et d'encodage vidéo.

0 votes

AFAIK VirtualDub a une commande "go to next frame". Je le ferais manuellement.

4voto

FrankS Points 1553

C'est une version bêta, mais fonctionnelle. Il n'est pas tout à fait aussi simple, mais il fonctionne. Il est basé sur Windows et est gratuit.

ELDER de la part de certains membres de Doom9

2 votes

J'ai vu cela aussi, mais j'espérais quelque chose de comparable à x264farm - il n'y a pas de coup de qualité avec x264farm... De plus, le projet est abandonné depuis un certain temps.

1 votes

J'ai initialement accordé une prime de 50 points à cette réponse, car c'était la solution la plus proche. à cette époque . Cependant, ce programme présentait une certaine perte de qualité par rapport à un encodeur à un seul ordinateur. J'espère pouvoir éviter cette perte de qualité.

0 votes

@Breakthrough Et si vous visiez un peu plus haut, par exemple, si cela empire de 10%, augmentez les paramètres (détails/taille des images/etc) de 10% ?

3voto

TheHippo Points 11900

Vous pouvez également essayer d'utiliser ceci, un logiciel d'encodage parallèle/distribué pour Windows qui fonctionne bien et s'adapte bien aussi.

Essayez de chercher xcode Parallel encoder sur Google.

Ces liens devraient fournir plus d'informations.

http://superscalar.pbworks.com/

0 votes

Sans rapport : Le nommage semble tout droit sorti du document Xcode d'Apple sur le fonctionnement de la compilation parallèle avec Xgrid. (Un IDE contre un encodeur vidéo)

0 votes

Ic, je ne suis pas un utilisateur de mac mais vous devriez essayer ceci, cela ne fonctionne que sur Windows cependant. J'ai une installation avec environ 10 Ghz de puissance de traitement combinée et une vidéo de 90 minutes prend en moyenne 30-32 minutes pour la conversion (x.264 / AAC / 1800 kbs vbr/256 kbs audio).

0 votes

Merci pour votre réponse. J'ai remplacé cette réponse par la réponse correcte actuelle, car cette solution est la plus proche de ce que je cherchais ! :)

2voto

Kit Roed Points 1922

Pour les utilisateurs de Final Cut Studio (Mac uniquement), la fonction Composant QuickTime x264 fonctionne remarquablement bien lorsqu'il est utilisé avec un cluster créé à l'aide de QMaster. Chargez votre film dans Compressor et c'est parti. Lors des tests, j'ai constaté des augmentations de vitesse décentes, en particulier lorsque l'on travaille sur un point de stockage partagé.

3 votes

Merde... Je suis un utilisateur de Windows. Mais ça a l'air plutôt cool, et similaire à ce que je recherche - j'aimerais juste qu'il soit multi-plateforme !

2voto

caliban Points 19715

Je suis un GRAND fan de Sony Vegas pour le montage vidéo sous Windows... et il y a une fonction appelée Network Render. :) Miam.

Flux de travail Sony Vegas

EDIT : Je ne sais pas trop si c'est une solution viable, mais au lieu d'essayer de trouver une application de codage vidéo qui prenne en charge le rendu réseau, j'ai essayé de trouver un logiciel qui permette à n'importe quelle application de tirer parti de l'informatique distribuée. Et j'ai trouvé ceci . IAIDataShareServer .

Il a l'air assez puissant, et les résultats de l'échantillon affiché sont vraiment excellents. Si vous comptez l'essayer, faites-nous savoir comment il fonctionne ?

EDIT2 : IAIDataShareServer semble ne faire qu'ordonner aux machines d'exécuter des tâches individuelles. Dans cette mesure, j'ai essayé de trouver d'autres solutions de calcul distribué, et j'en ai listé quelques unes prometteuses.

  1. JPPF
  2. XOREAX
  3. DCEZ (Celui-ci semble bon)

3 votes

0 votes

Haha, j'ai sauté sur l'occasion quand j'ai vu ça, mais je pensais me souvenir de quelque chose de vague dans le fond de mon esprit contre ça...

1 votes

@Breakthrough : hey mate, nouvelle solution possible trouvée. Je ne l'ai pas testée moi-même. Voir la réponse éditée. Bonne chance !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X