web-dev-qa-db-fra.com

Convertir une vidéo avec ffmpeg en utilisant gpu

J'ai un site de partage de vidéos et convertis des vidéos avec ffmpeg mais cela prend beaucoup de temps pour la conversion. comment le faire rapidement et en toute sécurité? Je pense que lorsque ffmpeg correspond au GPU, cela m'aide mais je ne trouve aucune bonne référence à utiliser. Quelle application ou référence peut m'aider à avoir de bonnes performances.

17
sdnaghdi

Mise à jour du quatrième trimestre 2017 . Depuis ma réponse originale, l'encodage basé sur GPU est devenu largement disponible. Si vous avez une --- carte vidéo NVIDIA et pouvez compiler ffmpeg alors vous devriez être prêt. Merci à Dmytro Dzyubak d'avoir souligné les FFmpeg docs déclarant qu'en effet "l'encodage basé sur CPU produit généralement une meilleure qualité que l'encodage basé sur GPU".

-

L'encodage basé sur GPU est spécifique à une norme de calcul codec/GPU (CUDA, OpenCL), vous devrez donc spécifier ce que vous utilisez dans votre cas. ffmpeg est entre autres un wrapper pour les codecs populaires comme x264 et VP8 pour la vidéo.

Jusqu'à présent, en utilisant x264, toutes les tentatives ont produit des résultats mitigés. Rien de ce qui pourrait être transmis à la production n'est venu voir le jour.

Le concept principal propose un SDK qui peut être utilisé pour l'encodage basé sur le GPU H264. Vous pouvez lire ici pour plus d'informations . Je n'ai pas vu le prix de leur SDK mais cela pourrait être cher je suppose.

Selon le codec que vous utilisez, il est préférable de modifier les paramètres d'encodage pour troquer la qualité contre la vitesse. D'un autre côté, l'encodage basé sur CPU tend à produire une meilleure qualité que l'encodage basé sur GPU.

12
Arnaud Leyder

Si vous utilisez un GPU NVidia, cela peut être utile:

https://developer.nvidia.com/nvidia-codec-libraries

4
Justin Buser

Il est peut-être encore "en cours de développement", mais j'ai trouvé plusieurs threads Doom9 prenant une énorme amélioration de l'encodeur x264 (l'utilisation de lib ffmpeg) lorsque la fonction "LookAhead" est "sur GPU" Mais il utilise OpenCL .

Cela peut aider.

2
alexbuisson