.MOV arquivo tem erros de sincronização de áudio em qualquer editor, mas joga bem no VLC

1

Eu tenho um arquivo .mov com vídeo H.264 1080p e áudio PCM bruto de 16 bits que eu preciso editar (remover uma parte).

O arquivo original é reproduzido no reprodutor de filmes do Gnome e VLC, mas assim que eu abro o arquivo em qualquer editor ele falha, com o áudio saindo (como se não houvesse áudio passado na metade do caminho - não falando milissegundos aqui) !)

Editores / transcodificadores que experimentei: VLC, Handbrake, Avidemux, OpenShot.

Não entendo por que o original é reproduzido corretamente, mas não pode ser transcodificado ou aberto em um editor sem esse problema. Nos transcodificadores eu tentei todos os tipos de combinações de áudio / vídeo / containers.

Alguém sabe algo confiável, ou algo que eu possa estar fazendo errado?

(estou usando o Ubuntu 12.04)

Isso foi solicitado:

$ffmpeg -i VBFT\ FINAL.mov 
ffmpeg version N-54234-gef90639 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 28 2013 05:26:06 with gcc 4.6 (Debian 4.6.3-1)
  configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
  libavutil      52. 37.101 / 52. 37.101
  libavcodec     55. 17.100 / 55. 17.100
  libavformat    55. 10.100 / 55. 10.100
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x388f6a0] multiple edit list entries, a/v desync might occur, patch welcome
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VBFT FINAL.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2013-03-04 16:54:43
  Duration: 00:02:37.24, start: 0.000000, bitrate: 9349 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 4017 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Metadata:
      creation_time   : 2013-03-04 16:54:43
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      creation_time   : 2013-03-04 16:54:43
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
    Metadata:
      creation_time   : 2013-03-04 16:54:51
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
At least one output file must be specified
    
por artfulrobot 23.07.2013 / 18:38

1 resposta

1

Você pode tentar extrair o áudio manualmente e depois mesclá-lo novamente:

ffmpeg -i input.mov -c:a copy out.wav
ffmpeg -i input.mov -i out.wav -c:v copy -c:a libfaac -map 0 -map 1 out.mp4

O arquivo MP4 resultante conterá o fluxo de vídeo original e o fluxo de áudio codificado como áudio AAC, que é suportado no contêiner MP4. Isso deve fornecer um arquivo que você pode editar facilmente em qualquer programa de edição de vídeo.

Ou, se você quiser cortar algo, pode fazê-lo imediatamente com ffmpeg :

ffmpeg -i input.mov -i out.wav -ss 00:01:23 -c:v copy -c:a libfaac -to 00:02:34 -map 0:v -map 1 out.mp4

Aqui, -ss e -to especificam os timestamps de início e parada, respectivamente. -map 0:v -map 1 informa ffmpeg para mapear o fluxo de vídeo do primeiro arquivo de entrada e o segundo arquivo completamente para a saída.

    
por 23.07.2013 / 21:29