web-dev-qa-db-ja.com

.MOVファイルには、どのエディターでもオーディオ同期エラーがありますが、VLCでは正常に再生されます

編集(の一部を削除)する必要があるH.2641080pビデオと生の16ビットPCMオーディオを含む.movファイルがあります。

元のファイルはGnomeのムービープレーヤーとVLCで正常に再生されますが、エディターでファイルを開くとすぐに失敗し、音声が途切れます(途中まで音声がないため、ここではミリ秒単位で話していません!)

私が試したエディター/トランスコーダー:VLC、Handbrake、Avidemux、OpenShot。

オリジナルが正常に再生される理由がわかりませんが、この問題なしにトランスコードしたり、エディターで開いたりすることはできません。トランスコーダーでは、オーディオ/ビデオ/コンテナーのあらゆる種類の組み合わせを試しました。

誰かが信頼できるもの、または私が間違っているかもしれない何かを知っていますか?

(私はUbuntu 12.04を使用しています)

これは要求されました:

$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
2
artfulrobot

オーディオを手動で抽出してから、マージして戻すことができます。

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

結果のMP4ファイルには、元のビデオストリームと、MP4コンテナでサポートされているAACオーディオとしてエンコードされたオーディオストリームが含まれます。これにより、任意のビデオ編集プログラムで簡単に編集できるファイルが得られます。

または、何かを切り取りたい場合は、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

ここに、 -ssおよび-to開始タイムスタンプと停止タイムスタンプをそれぞれ指定します。 -map 0:v -map 1ffmpegに、最初の入力ファイルと2番目のファイルのビデオストリームを完全に出力にマップするように指示します。

1
slhck