ffmpeg transmitiendo a rtmp y extrayendo imágenes periódicamente

Estoy usando este comando para recibir un flujo de entrada y transcodificarlo a una resolución diferente y transmitirlo a ustream.

ffmpeg -hide_banner -loglevel info -progress /tmp/ffmpeg.log -i udp://10.0.0.150:8181?listen \
-framerate 30 -video_size 1080x720 -vcodec libx264 -b:v 768k -crf 23 -preset medium -maxrate 800k -bufsize 800k \
-vf "scale=640:-1,format=yuv420p" -g 60 -c:a aac -strict -3 -ar 44100 -ab 32k -f flv rtmp://<ustream url>/<ustream key>

También quiero extraer una instantánea de calidad completa cada 1 minuto. Leí aquí cómo puedo extraer una miniatura de un video periódicamente y leí esto que explica cómo enviar un flujo de entrada a diferentes flujos de salida con diferentes filtros de video.

Cuando combiné los dos comandos terminé con esto:

ffmpeg -hide_banner -loglevel info -progress /tmp/ffmpeg.log -i udp://10.0.0.150:8181?listen -filter_complex '[0]split=2[in1][in2];[in1]scale=640:-1,format=yuv420p[out1];[in2]fps=1/60[out2]' \
-map '[out1]' -framerate 30 -video_size 1080x720 -vcodec libx264 -b:v 768k -crf 23 -preset medium -maxrate 800k -bufsize 800k -g 60 -c:a aac -strict -3 -ar 44100 -ab 32k -f flv rtmp://<ustream url>/<ustream key> \
-map '[out2]' img%03d.jpg

El comando casi funciona, pero falta el audio en la transmisión en vivo. Las imágenes se crean correctamente y el video está bien, pero no hay audio. ¿Cómo puedo obtener también audio en mi transmisión en vivo?

Respuestas (1)

Intentar

ffmpeg -hide_banner -loglevel info -progress /tmp/ffmpeg.log -i udp://10.0.0.150:8181?listen -filter_complex '[0:v]split=2[in1][in2];[in1]scale=640:-1,format=yuv420p[out1];[in2]fps=1/60[out2]' \
-map '[out1]' -map 0:a -framerate 30 -video_size 1080x720 -vcodec libx264 -b:v 768k -crf 23 -preset medium -maxrate 800k -bufsize 800k -g 60 -c:a aac -strict -3 -ar 44100 -ab 32k -f flv rtmp://<ustream url>/<ustream key> \
-map '[out2]' img%03d.jpg
"La salida con la etiqueta '0:a' no existe en ningún gráfico de filtro definido o se usó en otro lugar"
Pruebe el comando revisado.