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

0

Eu tenho um projeto de gravação de tela que captura com sucesso o vídeo e o áudio da área de trabalho em um MP4, através 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 ter que fazer uma segunda passagem no arquivo. Isso é possível? E se assim for, qualquer pista sobre como configurar os parâmetros?

    
por Dev 29.09.2017 / 22:26

1 resposta

1

Use o tee 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"
  • Para x11grab , use -video_size em vez de -s e -framerate em vez de -r .
  • Para alsa , use -channels em vez de -ac .
  • Apenas versões desatualizadas precisam de -strict -2 (ou -strict experimental ) para codificar com -c:a aac .
por 30.09.2017 / 01:05

Tags