J'essaie d'enregistrer une vidéo et son audio de Webcam à un fichier FLV stocké sur le disque dur local des utilisateurs. J'ai une version de ce code fonctionnant qui utilise NetConnection et NetStream pour diffuser la vidéo sur un réseau à un serveur FMS (RED5), mais j'aimerais pouvoir stocker la vidéo localement pour des situations de réseau à faible bande passante / floconneuse. J'utilise Flex 3.2 et Air 1.5, donc je ne crois pas qu'il devrait y avoir des restrictions de box de sandbox qui empêchent de se produire.
choses que j'ai vue: p>
donné que j'ai une version déjà qui utilise NetStream pour diffuser au serveur, je pensais que le dernier était le plus prometteur et allé de l'avant et mettez ensemble cette demande de démonstration. Le code compile et fonctionne sans erreurs, mais je n'ai pas de fichier FLV sur le disque que le bouton d'arrêt est cliqué. - P>
<mx:Script> <![CDATA[ private var _diskStream:NetStream; private var _diskConn:NetConnection; private var _camera:Camera; private var _mic:Microphone; public function cmdStart_Click():void { _camera = Camera.getCamera(); _camera.setQuality(144000, 85); _camera.setMode(320, 240, 15); _camera.setKeyFrameInterval(60); _mic = Microphone.getMicrophone(); videoDisplay.attachCamera(_camera); _diskConn = new NetConnection(); _diskConn.connect(null); _diskStream = new NetStream(_diskConn); _diskStream.client = this; _diskStream.attachCamera(_camera); _diskStream.attachAudio(_mic); _diskStream.publish("file://c:/test.flv", "record"); } public function cmdStop_Click() { _diskStream.close(); videoDisplay.close(); } ]]> </mx:Script> <mx:VideoDisplay x="10" y="10" width="320" height="240" id="videoDisplay" /> <mx:Button x="10" y="258" label="Start" click="cmdStart_Click()" id="cmdStart"/> <mx:Button x="73" y="258" label="Stop" id="cmdStop" click="cmdStop_Click()"/> </mx:WindowedApplication>
5 Réponses :
J'essaie également de faire la même chose, mais on m'a dit aux développeurs d'Avchat.net qu'il n'est pas possible de le faire avec de l'air pour le moment. Si vous découvrez comment le faire, j'aimerais savoir! P>
J'ai aussi trouvé ce lien, je ne sais pas à quel point il est utile que c'est utile http: //www.zeropoinnine.com/blog/webcam-dvr-for-apollo/ p>
Bonjour, le backend d'enregistrement vidéo derrière la webcam DVR est le SIMPLVVRECORDER.AS QUE J'AI AIMÉS AU CÔTÉ. Le problème majeur pour moi avec SimpleFlvwriter.As est qu'il ne prend pas en charge l'enregistrement audio avec la vidéo Webcam. Dans ma candidature, l'audio est très important (en fait, une solution qui enregistre uniquement l'audio et aucune vidéo ne serait meilleure que la vidéo sans audio).
Eh bien, je pense juste que le laisser se connecter à rien (null) ne fonctionne pas. Je l'ai déjà laissé essayer de se connecter à Localhost, mais cela n'a pas fonctionné non plus. Je ne pense pas que cela soit encore possible. Streaming Video fonctionne uniquement avec Flash Media Server et Red5, pas local. Peut-être que vous pourriez installer red5 sur votre PC? P>
L'objectif est de fournir une "application" que les téléchargements utilisateur à partir du site Web (idéalement installé aussi transparent que l'air le permettent) qu'ils peuvent utiliser pour enregistrer une vidéo et la télécharger ultérieurement sur un serveur RED5. L'installation de Red5 sur la machine locale signifie que nous devrions créer une application d'installateur séparée qui a installé notre application et RED5 pour l'utilisateur. Pas l'expérience des marques que nous espérons.
Un support vidéo tristement en flash des caméras est très em> pauvre. Lorsque vous diffusez-le, le problème est que vous devez coder à FLV et le faire en temps réel prend un ordinateur très rapide. Les concepts de premier générateur écriture écriraient des bitmaps bruts dans un fichier (ou sérialiser une matrice) puis une seconde méthode convertirait le fichier en une FLV. Fondamentalement, vous devez interroger la caméra et enregistrer chaque image sous forme de bitmap puis empiler dans un tableau. Ceci est très limité et ne pouvait pas faire de l'audio. Il était également très difficile d'obtenir au-dessus de 5-10fps. P>
Le Gand à Zero Point Neuf neuf, propose une nouvelle version et votre sur le bon chemin. Regardez Le nouvel enregistreur FLV . J'ai passé beaucoup de temps à travailler avec cela, mais je n'ai jamais eu à travailler pour mes besoins (deux caméras). Je ne pouvais tout simplement pas obtenir le FPS dont j'avais besoin. Mais cela pourrait fonctionner pour vous. C'était beaucoup plus rapide que la méthode originale. P>
La seule autre option de travail que je connaisse est d'enregistrer la vidéo Red5 et de le télécharger sur l'application. P>
Ma solution consistait à intégrer Red5 dans l'air. Partage avec vous mon article P>
http: // myDevrecords. blogspot.com/2012/01/Local-Recording-in-adobe-air-utilisateur-red5.html P>
En général, la solution consiste à intégrer le serveur de média libre RD5 dans de l'air comme un actif. Donc, le serveur sera présent dans le dossier d'application AIR. Ensuite, à travers la propriété NativeProcess, vous pouvez exécuter RED5 et avoir son instance en mémoire. En conséquence, vous pouvez avoir une enregistrement vidéo locale sans aucun problème de réseau. P>
Bienvenue dans le débordement de la pile! Bien que cela puisse répondre théoriquement à la question, serait préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence.
Salut Peter. Merci. Le problème est qu'il est un peu difficile de décrire la solution juste dans le corps du commentaire. En général, la solution consiste à incorporer le serveur de média libre RD5 dans de l'air comme un actif. Donc, le serveur sera présent dans le dossier d'application AIR. Que, à travers la propriété NativeProcess, vous pouvez exécuter RED5 et avoir son instance en mémoire. En conséquence, vous pouvez avoir une enregistrement vidéo locale sans aucun problème de réseau.
Merci. J'ai mis votre commentaire dans votre réponse.
Il n'est pas possible de diffuser directement la vidéo sur le disque local sans utiliser du service de diffusion de streaming tel que Windows Media Encoder, ou le serveur multimédia RED5 ou Adobe ou autre chose. P>
J'ai essayé tous les échantillons sur Internet sans solution à ce jour. P>
Regardez ce lien pour une autre possibilité: p>
http://www.zeropoinnine.com/blog/updated-flv -Coder-alchem / p>
Pourquoi ne pas utiliser Air 2.0? Peut-être qu'il serait plus facile d'utiliser des fonctions Air 2.0 pour l'enregistrement de microphone ... BTW à l'aide de AIR 2.0 Vous pourrez au moins compresser la vidéo (sans l'utilisation d'alchimie) ... ou peut-être que vous pouvez au moins tester si votre flux est jouable juste en essayant de jouer - de ne pas écrire au système de fichiers
Au moment de la demander à Air 2.0 était toujours en version bêta. Je l'ai examiné et il ne semblait pas avoir d'API supplémentaires pour les objets de la caméra ou de Filestrevis qui rendrait cela possible, si Air 2.0 permet une enregistrement locale d'une caméra, je l'utilise définitivement.