ffmpeg, como criar dois arquivos de saída durante a captura?

ffmpeg, como criar dois arquivos de saída durante a captura?

Eu tenho um projeto de gravação de tela que captura com êxito o vídeo e o áudio da área de trabalho em um MP4, por meio da seguinte linha de comando:

ffmpeg -report -y -f x11grab -s 1920x1080 -r 5 -thread_queue_size 3000 -i :44
    -f alsa -ac 1 -thread_queue_size 3000 -i hw:Loopback,1,0 -c:v libx264
    -preset veryfast -crf 28 -movflags +faststart -pix_fmt yuv420p -c:a aac
    -strict -2 video_and_audio_output.mp4

Isso funciona bem. O que eu quero é criar simultaneamente uma saída adicional que contenha apenas a trilha de áudio, sem precisar fazer uma segunda passagem no arquivo. Isso é possível? E se sim, alguma pista sobre como configurar os parâmetros?

Responder1

Use ocamiseta muxer:

ffmpeg -f x11grab -video_size 1920x1080 -framerate 5 -thread_queue_size 3000
    -i :44 -f alsa -channels 1 -thread_queue_size 3000 -i hw:Loopback,1,0 -map 0
    -map 1 -c:v libx264 -preset veryfast -crf 28 -pix_fmt yuv420p -c:a aac -f tee
    "[select=v,a:movflags=+faststart]video_and_audio_output.mp4|[select=a:movflags=+faststart]audio.m4a"
  • Parax11grabuse -video_sizeem vez de -se -framerateem vez de -r.
  • Paratambémusar -channelsem vez de -ac.
  • Somente versões desatualizadas precisam -strict -2(ou -strict experimental) ser codificadas com -c:a aac.

informação relacionada