我的视频文件非常奇怪。 它有音频/视频同步问题。视频速度很快,音频也很好。 视频的帧速率很奇怪: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)
答案 0 :(得分:3)
首先,您可能需要将音频分开:
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
然后你将视频和音频结合起来。