ffmpeg - Convertendo arquivos MOV para MP4 [fechado]

145

Acabei de instalar o ffmpeg e estou tentando codificar todos os meus vídeos enviados para o arquivo .mp4. Atualmente, a maioria dos usuários carrega .mov e eu quero converter todos os vídeos em .mp4.

Estou executando o comando da seguinte maneira:

ffmpeg -i movie.mov -vcodec copy -acodec cop out.mp4

Mas tudo o que estou recebendo são os seguintes erros

ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug 19 2012 11:38:20 with clang 3.1 (tags/Apple/clang-318.0.61)
  configuration: --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-hardcoded-tables --enable-shared --enable-pthreads --disable-indevs --cc=clang
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2012-03-28 07:13:20
  Duration: 00:00:26.23, start: 0.000000, bitrate: 12974 kb/s
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720 [PAR 72:72 DAR 16:9], 12972 kb/s, 11.67 fps, 600 tbr, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2012-03-28 07:13:20
File 'out.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2012-03-28 07:13:20
    encoder         : Lavf53.4.0
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720 [PAR 72:72 DAR 16:9], q=2-31, 12972 kb/s, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2012-03-28 07:13:20
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame=  121 fps=  0 q=-1.0 size=   16408kB time=00:00:10.08 bitrate=13332.2kbitsframe=  306 fps=  0 q=-1.0 Lsize=   41543kB time=00:00:26.12 bitrate=13025.0kbits/s    
video:41538kB audio:0kB global headers:0kB muxing overhead 0.012531%
user1503606
fonte
Tem certeza de que são erros? Parece mais um arquivo de log para mim. Ele ainda pede para substituir o mp4 anterior: O arquivo 'out.mp4' já existe. Substituir? [s / N] y
Conrad Lotz
Pergunta semelhante no SuperUser.
legends2k

Respostas:

254

O comando para transmiti-lo apenas para um novo contêiner (mp4) necessário para alguns aplicativos como o Adobe Premiere Pro sem codificação (rápida) é:

ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4

Alternativa conforme mencionado nos comentários, que recodifica com a melhor qualidade ( -qscale 0):

ffmpeg -i input.mov -q:v 0 output.mp4
Conrad Lotz
fonte
70
Uma vez que esta aparece nos resultados da pesquisa, eu vou adicionar o comando atualizado para o ffmpeg como de escrever: ffmpeg -i input.mov -qscale 0 output.mp4
StudioEvoque
14
@StudioEvoque o que a -qscale 0bandeira faz?
CyberSkull
4
@CyberSkull -qscaledefine o nível de compactação. Quanto menor o valor de qscale, melhor a qualidade. Os valores qscale disponíveis variam de 1 (qualidade mais alta) a 31 (qualidade mais baixa).
RonnyKnoxville
8
@MiguelBartelsman @Baodad um contêiner empacota vários fluxos de vídeo e áudio, adiciona um cabeçalho e um índice. O contêiner Quicktime (mov) e MPEG (mp4) funcionam tecnicamente de maneira bem diferente. Se você acabou de renomear um arquivo do Quicktime para mp4, finge que é um vídeo MPEG, mas ele continua sendo um contêiner do Quicktime. Observe: como você usa o copyparâmetro para o codec, solicita ao FFMpeg para copiar os dados reais da mídia, sem precisar recodificar em outro codec.
Ichthyo 12/03
10
@StudioEvoque beware! O que você está propondo aqui é algo bem diferente do que o OP fez e provavelmente desejou. Você não fornece uma especificação de codec, portanto, solicita ao FFMpeg que transcodifique os dados de mídia reais no codec padrão associado ao recipiente MP4. Mesmo se você usar as configurações de qualidade mais altas, a transcodificação sempre perderá alguma qualidade. Só quando você usa -c copy-lo a garantir que os dados de mídia original, como tal, não é tocado, apenas o recipiente mudou
Ichthyo