Hay dos soluciones me pueden visualizar para este escenario:
- Guardar el archivo en un equipo remoto
- Tener un live stream de difusión para un equipo remoto, puede recibir el audio
Guardar el archivo
Este es probablemente el método más fácil. Permitir el flujo de terminar la grabación y la copia en una ubicación predeterminada en la red. Este script debe ajustarse a la ley:
#!/bin/bash
#
ffmpeg -f avfoundation -i ":1" -t 10 audiocapture.mp3
scp audiocapture.mp3 user@host:/foo/bar/audiocapture.mp3
exit 0
El guión no se hace ninguna comprobación de errores de cualquier tipo, pero, va a grabar desde el micrófono, luego cuando termine el programa hará una copia a través de SCP (secure copy) a un equipo remoto. Para que esto funcione, es necesario configurar las Claves SSH para facilitar un no inicio de sesión interactivo.
Stream en tiempo real
El otro método, es para transmitir el audio a través de TCP a través de un punto-a-punto de conexión. Utilizando la misma entrada de la respuesta anterior, acabamos de cambiar la salida a un flujo de red:
$ ffmpeg -f avfoundation -i ":1" -t 10 -f mpegts "tcp://remote_host_or_IP_:port"
Donde....
-
-f
es el formato de transporte; en este caso mpegts (MPEG Transport Stream)
-
tcp://remote_host_or_IP_:port
es el valor de URI de la computadora remota del nombre de host/dirección IP y número de puerto que se va escuchando.
Conjunto de equipo remoto para que "escuche"
El uso de ffplay
el equipo remoto se puede configurar para recibir la corriente (he usado Windows 10 para esta parte, pero funciona en mac os/Windows/BSD/Linux)
Emita el comando
ffplay -i tcp://local_host_or_IP_addr:port?listen -hide_banner
Donde....
-
-i
define la secuencia de entrada
-
local_host_or_IP_addr:port
es la dirección IP o nombre de host y el puerto TCP de la computadora que está escuchando (no el equipo de transmisión).
-
?listen
es necesario para ponerlo en "modo de escucha" de lo contrario será el tiempo de espera si el flujo no está allí.
A continuación es un ejemplo hecho en Windows 10 recepción de la secuencia de un macOS host del micrófono. La dirección IP de Windows 10 máquina es 10.0.0.123 y estoy de radiodifusión en el puerto 1234.
C:\Users\allan\Desktop\ffmpeg>ffplay -i tcp://10.0.0.123:1234?listen -hide_banner
nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Una vez que se comienza a recibir la transmisión, los valores por encima de la voluntad de cambio y un jugador de la "visualización" de la ventana se abrirá.
Input #0, mpegts, from 'tcp://10.0.0.123:1234?listen':B f=0/0
384 kb/s nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Program 1 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Metadata: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Service01 nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0 0B f=0/0
FFmpeg nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0 sq= 0B f=0/0
Stream #0:0[0x100]: Audio: mp2 ([3][0][0][0] / 0x0003), 44100 Hz, stereo, fltp, 384 kb/s
11.35 M-A: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Seguirá a "escuchar" hasta que el proceso se mató.