1

.mp4 形式への変換が必要な .mov ビデオのセットがあります。私はffmpegを使用しており、次のコマンドを実行しています:

ffmpeg -i Banking.mov -vsync -async -sameq -ac 1 -ab 64k -ar 44100 Banking.mp4

入力ビデオと出力ビデオの時間の長さにはわずかな違いがあります (00:03:35.407 と 00:03:35.582)。そして、ここにキャッチがあります-特定のシーンを指すためにプログラムによって使用されるファイルに、正確な時間に設定されたタイムキューを保存しています。0.1 秒の違いにより、間違ったシーンを指し示すため、キュー セットが役に立たなくなります。まったく同じ時間を異なる形式で保存する可能性はありますか?

   FFmpeg version CVS, Copyright (c) 2000-2004 Fabrice BellardMac OSX universal build for ffmpegX
  configuration:  --enable-memalign-hack --enable-mp3lame --enable-gpl --disable-vhook --disable-ffplay --disable-ffserver --enable-a52 --enable-xvid --enable-faac --enable-faad --enable-amr_nb --enable-amr_wb --enable-pthreads --enable-x264 
  libavutil version: 49.0.0
  libavcodec version: 51.9.0
  libavformat version: 50.4.0
  built on Apr 15 2006 04:58:19, gcc: 4.0.1 (Apple Computer, Inc. build 5250)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5597b8]negative ctts, ignoring
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Banking.mov':
  Duration: 00:03:35.6, start: 0.000000, bitrate: 1400 kb/s
  Stream #0.0(eng): Audio: pcm_s16be, 24000 Hz, stereo, 768 kb/s
  Stream #0.1(eng), 29.97 fps(r): Video: h264, yuv420p, 720x480
Output #0, mp4, to 'Banking.mp4':
  Stream #0.0, 29.97 fps(c): Video: mpeg4, yuv420p, 720x480, q=2-31, 200 kb/s
  Stream #0.1: Audio: aac, 44100 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
  Stream #0.0 -> #0.1
Press [q] to stop encoding
frame= 6461 q=0.0 Lsize=   53181kB time=215.3 bitrate=2023.3kbits/s    
video:51437kB audio:1618kB global headers:0kB muxing overhead 0.237816%
4

1 に答える 1

2

FFmpeg の出力から判断すると、入力ファイルの長さは 3:35.6 分です。

入力 #0 , mov,mp4,m4a,3gp,3g2,mj2, from 'Banking.mov': Duration: 00:03:35.6

したがって、タイミングの違いは、ファイルのトランスコーディングに直接関係するものではなく、FFmpeg がファイルを認識する方法にあるようです。00:03:35.407 を取得する時間をどのように測定していますか?

とはいえ、いくつかの観察:

  • あなたの全体的な目標はコンテナ形式の変換だけなので、ビデオとオーディオのデータを正確にコピーしてみませんか?

    ffmpeg -i Banking.mov -codec copy Banking.mp4
    

    それはすべてをうまく保存するはずです。

  • documentationによると-vsync-asyncそれぞれがパラメーターを取るため、パラメーターがないことはおそらく何の役にも立ちません。(ただし、FFmpeg のバージョンはやや古いため、そのバージョンの適切な使用法である可能性があります。出力にエラーは表示されません。)

  • その点で、FFmpeg の 6 年前のビルドを使用している理由はありますか? 最新バージョンの方が確実にサポートが向上し、より良い結果が得られる可能性があります。

于 2012-07-13T22:32:47.820 に答える