I'm trying to use ffmpeg for rendering video where an audio file and image are taken as inputs, and turned into a video with the same dimensions as the image with the audio file playing for the duration of the video (basically a music video).
I have this working for flac and mp3 files, my ffmpeg command for mp3 is below:
ffmpeg -loop 1 -framerate 2 -i "front.png" -i "testMP3file.mp3" -vf "scale=2*trunc(iw/2):2*trunc(ih/2),setsar=1" -c:v libx264 -preset medium -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p -strict -2 "testMP3fileOutput1.mp4"
How can I take wav audio files as input instead of mp3? Is there a different codec I need to specify? This post talks about download libfaac and using that, is there any way to take wav audio file as input using just ffmpeg without downloading a separate library?
Just use a WAV file as input and change -c:a copy
to -c:a aac
(or omit -c:a
if you want to use the default encoder which is -c:a aac
for MP4 output):
ffmpeg -loop 1 -framerate 2 -i "front.png" -i "testMP3file.wav" -vf "scale=2*trunc(iw/2):2*trunc(ih/2),setsar=1,format=yuv420p" -c:v libx264 -preset medium -tune stillimage -crf 18 -c:a aac -shortest "testMP3fileOutput1.mp4"
Other changes:
-strict -2
: it does nothing. You can remove that from your command too.-pix_fmt yuv420p
with format=yuv420p
so all your filtering is contained in the filtergraph.