Vidéo en temps réel de l'encodage en DirectShow

J'ai développé une application Windows qui permet une capture vidéo à partir d'un périphérique externe à l'aide de DirectShow. La résolution de l'image est de 640x480 et les vidéos enregistrées sans compression, de très de très grande taille (approx. 27 MO par seconde).

Mon objectif est de réduire cette taille, autant que possible, je suis à la recherche d'un codeur qui va me permettre de compresser la vidéo en temps réel. Il pourrait être H. 264, MPEG-2 ou quoi que ce soit d'autre. Il doit me permettre d'enregistrer la vidéo sur le disque et il serait mieux si je pouvais aussi le diffuser en temps réel sur le réseau (Wi-Fi gratuite, de sorte que la taille doit être d'environ 1 MO par seconde, ou moins). L'importante perte de qualité serait inacceptable.

J'ai trouvé que l'obtention d'une approprié filtre DirectShow pour cette tâche est très difficile. Il peut être supposé que le client de la machine est assez moderne (fast 2-core) et d'utiliser CUDA/OpenCL. Il ya quelques applications qui permettent d'encoder de la vidéo à l'aide de CUDA et offrent de bonnes performances, mais je n'ai pas trouvé le filtre DirectShow ou une API qui pourrait être utilisé pour développer un. La NVIDIA nvcuvenc.dll semble avoir API privée donc je suis incapable de l'utiliser directement. CPU en fonction des encodeurs j'ai trouvé sont trop lent pour mes besoins, mais j'ai peut-être manqué quelques-uns.

Quelqu'un pourrait-il me recommander une solution, c'est à dire un codeur (payant ou gratuit, qui peut être utilisé dans un code source fermé app) qui permet de réaliser une bonne performance, peu importe si c'est à l'aide de CPU/CUDA/OpenCL ou de DirectCompute? Ou peut-être que je devrait utiliser un matériel externe encodeur vidéo?

Cordialement,

madbadger

  • Ne sais pas si vous avez trouvé une solution pour le présent, mais dans un même temps, j'ai développé des Flux de Transport de codage pour mon produit - peut-être qu'une telle solution serait également acceptable pour vous puisque vous parlez de diffusion en continu via le WiFi
InformationsquelleAutor madbadger | 2010-07-02