web-dev-qa-db-fra.com

FFserver-FFmpeg Flux audio manquant nécessaire

Je me suis amusé avec ffserver et ffmpeg pour définir un flux en temps réel avec ma webcam. Une fois (en réalité 4-5 fois) je l’ai fait fonctionner, mais maintenant, chaque fois que j’essaie de lancer le serveur, j’ai eu cette erreur: Le flux audio manquant qui est nécessaire pour ce ffm.

Voici comment je le lance:

ffserver -f ffserver.conf & ffmpeg -i /dev/video0 http://localhost:8090/feed1.ffm

J'ai essayé de modifier beaucoup de choses dans le fichier ffserver.conf telles que différents formats/codecs vidéo en mettant la ligne NoAudio en train de les supprimer, etc. ... Je ne peux plus le faire fonctionner.

Je suis assez désespéré, car j'ai cherché une réponse sur le Web, mais je n'ai rien trouvé ... J'espère que certaines personnes ici pourront vous aider ou au moins soumettre des idées ou des pensées, à ce stade, je ne prends rien!

4
victor jung

j'ai donc trouvé la solution moi-même! Vous devez donc ajouter NoAudio dans le bloc pour vous assurer qu'il est obligatoire ou non, selon le format utilisé. Le problème est que si vous essayez de lancer ffserver et que cela ne fonctionne pas, à cause de quelques erreurs dans les fichiers ffserver.conf, il ne suffit pas de les corriger, vous devez fermer le shell où vous avez essayé de le lancer, rouvrir un nouveau fichier. Shell et réessayez, sinon l'erreur se reproduira pour des raisons ultra étranges.

De même pour toutes les erreurs, vous devez corriger votre fichier ffserver.conf, fermer le shell sur lequel vous avez essayé de le lancer et en ouvrir un nouveau pour essayer de redémarrer le serveur.

J'espère que cela peut aider peu d'entre vous.

3
victor jung

Dans mon cas, le problème était que j'utilisais le ffserver.conf par défaut (trouvé dans le répertoire doc de la distribution source et dans /etc/ffserver.conf du paquet Ubuntu FFmpeg). Le ffserver.conf par défaut a deux blocs <Stream> différents qui utilisent feed1.ffm, ce que je n’avais pas compris. Même si j’ai marqué le premier bloc de flux comme NoAudio, le deuxième bloc de flux le demandait toujours.

Le passage à un ffserver.conf minimal contenant uniquement les blocs et les directives dont j'avais besoin a résolu ce problème.

2
Josh Kelley

Vous n'avez pas besoin de tuer le Shell lui-même (bash, probablement) mais juste le processus ffserver, puis de le redémarrer. Cela revient généralement à simplement utiliser (dans cette fenêtre Shell) Control-CUp-Arrow (ou Control-P) et retour.

J'utilise mon ffmpeg à partir de l'intérieur du fichier /etc/ffserver.conf à l'aide de l'option Lancer (dans une section Feed). Le redémarrage de ffserver fait donc tout. Une ligne de lancement de base pourrait ressembler à:

Launch ffmpeg -r 5 -i /dev/video0

Pour voir si des strays sont en cours d'exécution, utilisez cette commande (plutôt informelle) dans une seconde fenêtre: ps -ef | grep ff

0
Alex North-Keys