Traitement de capture vidéo Java HD et streaming


J'ai une application qui capture la vidéo en direct à partir d'une caméra HD et la diffuse vers un serveur de streaming vidéo. J'utilise actuellement Adobe Flash Media Live Encoder (FMLE) pour envoyer le flux vidéo capturé au serveur.

Le problème est que FMLE n'a pas de support pour linux. Je suis venu acroos VLCJ et Xuggler comme alternatives possibles à FMLE et aussi que ceux-ci fournissent un meilleur contrôle sur les médias codés de sorte que nous pouvons mettre en option des détecteurs de mouvement, des filtres, etc. Est-il possible d'utiliser la prise en charge de la capture vidéo prise en charge de VLCJ et prise en charge du traitement de xuggler pour mon application. Je veux dire y a-t-il des interfaces communes dans lesquelles je peux présenter le flux capturé de vlcj à Xuggler?

Author: user2156721, 2013-03-11

1 answers

Il n'y a pas d'interface agréable existante qui relie les deux bibliothèques (que je connais), mais vous pourrez peut-être canaliser des données brutes entre les deux.

Le DirectMediaPlayer de VLCJ a un rappel de rendu qui fournit un hook dans les données de pixel brutes (voir ici pour un exemple particulier.) Habituellement, cela est utilisé pour la manipulation directe de pixels sur la couche Java (comme la création de la vidéo en niveaux de gris dans l'exemple ci-dessus), mais il n'y a aucune raison réelle pour laquelle vous ne devriez pas être en mesure de canaliser les données vers Xuggler IBuffer , puis à son tour envelopper cela dans une IVideoPicture (et à partir de là, vous êtes dans Xuggler land.)

Je n'ai jamais essayé de faire quelque chose comme ça moi - même, donc il peut y avoir quelques cerceaux supplémentaires que vous devez franchir-mais en principe, cela semble certainement possible. Le problème principal serait, je pense, la vitesse si vous en avez besoin en temps réel; faire tout cela sur le processeur pour la vidéo HD n'est pas une petite demande de votre processeur.

 0
Author: Michael Berry, 2015-06-10 13:37:46