Which FFmpeg command do I use to passthrough FLV to MP4?
It should be something like:
ffmpeg -i yourvideo.flv -codec copy output.mp4
You can use FOR command to loop through files (it recurses down your tree):
FOR /R C:\dir\ %%F IN (*.flv) do ffmpeg -i "%%F" -codec copy "%~nF.mp4"
Just to clarify, %~nF returns only the name portion of the filename (without the extension).
They are already in the correct format
.flv videos are complex files that can contain many types of audio and video. To check a .flv file's audio and video codecs you can use:
1.ffmpeg
ffmpeg -i video.flv
which (in your case) should output something along the lines of:
Input #0, flv, from 'video.flv':
Duration: 00:05:01.20, start: 0.000000, bitrate: 66 kb/s
Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 66 kb/s, 29.92 tbr, 1k tbn, 2k tbc
Stream #0.1: Audio: aac, 22050 Hz, stereo, s16
or
2.VLC's Media Information window:
This .flv file contains H.264 video and AAC audio which happens to be the correct formats/codecs for the .mp4 container.
Here's the structure of such an .mp4 file:
*Image courtesy of Converting FLV to MP4 With FFmpeg The Ultimate Guide
So when transocding flv to mp4, depending on the codecs in the original .flv file, we have 4 cases:
1) Converting .flv files with H.264 video and AAC audio
If the audio and video codecs in the .flv files are supported by the .mp4 container (AAC + H.264) then you can just copy the streams into an mp4 file without transcoding:
ffmpeg -i video.flv -codec copy video.mp4
Such .flv files are very rare.
This process is MASSIVELY faster than decoding and reencoding the entire audio and video data.
2) Converting .flv files with H.264 video and Nellymoser/Speex audio
If one or more of the videos have H.264 video and Nellymoser ASAO/Speex audio (very common with .flv files) then you need to copy video (-vcodec instead of -codec) and transcode (just) the audio:
ffmpeg -i video.flv -vcodec copy video.mp4
3) Converting .flv files with Spark/VP6 video and Nellymoser/Speex audio
If flv's video and audio data are not encoded with the correct codecs for .mp4 (Spark & VP6 video codecs were very common) then you need to force both AAC and H.264:
ffmpeg -i video.flv video.mp4
4) Converting .flv files with Spark/VP6 video and AAC audio
It would be vary rare to come across a .flv file with AAC audio and video other than H.264, but just in case, here's how to transcode it to .mp4 in the most efficient way (copy the audio data):
ffmpeg -i video.flv -acodec copy video.mp4