Na minha experiência, o ffmpeg é uma ferramenta adequada para essa tarefa. Existe até um guia oficial para resolver exatamente o seu problema, veja:
link .
Extraído da fonte vinculada:
If you want to add audio (e.g. audio.wav) to one "poster" image, you need -shortest to tell it to stop after the audio stream is finished. The internal AAC encoder is used in this example, but you can use any other supported AAC encoder as well:
ffmpeg -loop 1 -i img.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest out.mp4
If your audio file is using a codec that the output container supports (e.g. MP3 audio in AVI or M4A/AAC audio in MP4), you can copy it instead of re-encoding, which will preserve the audio quality:
ffmpeg -loop 1 -i img.jpg -i audio.m4a -c:v libx264 -c:a copy -shortest out.mp4
Eu acho que h264 + AAC ou MP3 é muito bom para o Youtube, mas no final, eles vão ter praticamente qualquer formato. Apenas certifique-se de usar um formato de áudio com baixa compactação, portanto, um MP3 de 64 kbit / s pode não ser a melhor idéia.