En me basant sur la réponse de @ Allan , j'essaie de rediriger la sortie de ffmpeg vers un serveur.
$ ffmpeg -f avfoundation -i ":1" -t 10 - | ssh user@host .... -
Mais je reçois le message d'erreur suivant:
"Au moins un fichier de sortie doit être spécifié"
J'ai aussi essayé d'utiliser ffserver au lieu de SSH mais je n'ai aucune chance.
Est-il possible de diffuser de l' audio de cette façon?
Réponses:
Je peux visualiser deux solutions pour ce scénario:
Sauvegarder le fichier
C'est probablement la méthode la plus simple. Laissez le flux terminer l’enregistrement, puis copiez-le dans un emplacement prédéterminé du réseau. Ce script devrait correspondre à la facture:
Le script ne vérifie aucune erreur, mais il enregistre à partir du microphone, puis, une fois terminé, il le copie via SCP (copie sécurisée) sur un ordinateur distant. Pour que cela fonctionne, vous devez configurer des clés SSH afin de faciliter une connexion non interactive .
Stream en temps réel
L'autre méthode consiste à diffuser l'audio via TCP via une connexion point à point. En utilisant la même entrée de la réponse précédente, nous modifions simplement la sortie en un flux réseau:
Où....
-f
est le format de transport; dans ce cas, mpegts (flux de transport MPEG)tcp://remote_host_or_IP_:port
est la valeur URI du nom d'hôte / adresse IP et du numéro de port de l'ordinateur distant sur lequel il va écouter.Configurer l'ordinateur distant pour "écouter"
L'utilisation de
ffplay
l'ordinateur distant peut être configurée pour recevoir le flux (j'ai utilisé Windows 10 pour cette partie, mais fonctionnera sous macOS / Windows / BSD / Linux)Émettre la commande
Où....
-i
définit le flux d'entréelocal_host_or_IP_addr:port
est l'adresse IP ou le nom d'hôte et le port TCP de l' ordinateur en écoute (et non de l'ordinateur en streaming).?listen
est nécessaire pour le mettre en "mode écoute" sinon il expirera si le flux n’y est pas.Ci-dessous, un exemple réalisé sous Windows 10 recevant le flux du microphone d'un hôte macOS. L'adresse IP de l'ordinateur Windows 10 est 10.0.0.123 et je diffuse sur le port 1234.
Une fois qu'il commence à recevoir la diffusion, les valeurs ci-dessus vont changer et une fenêtre de "visualisation" du lecteur s'ouvrira.
Il continuera à "écouter" jusqu'à ce que le processus soit tué.
la source