4

非常に奇妙なビデオファイルがあります。オーディオとビデオの同期に問題があります。ビデオは速くなり、オーディオは良好です。ビデオのフレーム レートが異常です: 26.07 fps。

ffmpeg を使用してビデオ ストリームを修正するにはどうすればよいですか。ビデオの開始時に同期は問題ありませんが、ビデオ ストリームの終了時に約 5 分間の音声が残っており、黒い画面で再生されています。

これは ffmpeg -i video.avi からの出力です

ffmpeg version git-2011-10-15-1d0afec, Copyright (c) 2000-2011 the FFmpeg developers
  built on Oct 15 2011 14:27:57 with gcc 4.4.5
  configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-libxvid
  libavutil    51. 21. 0 / 51. 21. 0
  libavcodec   53. 20. 1 / 53. 20. 1
  libavformat  53. 16. 0 / 53. 16. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 43. 6 /  2. 43. 6
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg4 @ 0xa585420] Invalid and inefficient vfw-avi packed B frames detected
Input #0, matroska,webm, from 'video.avi':
  Duration: 02:03:46.01, start: 0.000000, bitrate: 103 kb/s
    Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 704x288 [SAR 1:1 DAR 22:9], 26.07 fps, 25 tbr, 1k tbn, 25 tbc (default)
    Stream #0:1(pol): Audio: ac3, 48000 Hz, 5.1(side), s16, 448 kb/s (default)
4

1 に答える 1

6

まず、オーディオを分離する必要がある場合があります。

 ffmpeg -i input.avi -vn -ac 2 -ar 48000 -ab 448k -f mp3 audio.mp3

次に、ビデオ ファイル全体の長さ (秒単位) をビデオ ストリームの実際の長さ (ビデオが停止し、オーディオだけが聞こえる時間) で割る必要があります。1 より少し上の数値 (1.12 など) を取得する必要があります。この商を取り、次のようにします。

 ffmpeg -i input.avi -vf "setpts=quotient*PTS" -an output.avi

次に、ビデオとオーディオを結合します。

于 2013-01-07T09:19:22.423 に答える