Vamos enumerar os parâmetros para ffmpeg então.
-
-acodecé melhor escrito-c:a(codec menmonico para áudio) -
-vcodecé melhor escrito-c:v(mesmo mnemônico) -
-ié o arquivo de entrada (não-I)
ffmpeg faz uma suposição muito boa com base em extensões de arquivo, portanto:
ffmpeg -i file.wem file.mp4
Converte as coisas, mas provavelmente em uma qualidade muito ruim.
Por H264 você está após o codec libx264 , portanto deve ser:
ffmpeg -i file.avi -c:v libx264 -c:a copy file.mp4
Como teste, vamos usar o exemplo clássico webm :
$ wget http://video.webmfiles.org/big-buck-bunny_trailer.webm
...
$ ffmpeg -i big-buck-bunny_trailer.webm -c:a copy -c:v libx264 bbb.mp4
...
$ ffprobe bbb.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.41.100
Duration: 00:00:32.50, start: 0.000000, bitrate: 414 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 341 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: vorbis (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 64 kb/s (default)
Metadata:
handler_name : SoundHandler
E isso parece promissor, o stream # 0: 0 é um fluxo de vídeo codificado por H264.