У меня есть проект записи экрана, который успешно записывает видео и аудио с настольного компьютера в MP4 с помощью следующей командной строки:

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

Это отлично работает. Я хочу одновременно создать дополнительный вывод, содержащий только звуковую дорожку, без необходимости повторного прохода по файлу. Это возможно? И если да, то какие-либо выводы о том, как настроить параметры?

1 ответ1

1

Используйте тройник 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"
  • Для x11grab используйте -video_size вместо -s и -framerate вместо -r .
  • Для ALSA используйте -channels вместо -ac
  • Только устаревшие версии требуют -strict -2 (или -strict experimental) для кодирования с -c:a aac .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .