Audio 使用FFmpeg提高速度,而不是复制帧,将格式30帧转换为60帧/秒
我有一个视频错误地标记为30fps,它实际上是60fps,所以看起来像是以半速播放。音频很好,也就是说,音轨在视频剪辑的一半结束。我想知道,如果可能的话,如何解决这个问题,即视频速度加倍,达到60fps,这意味着音频和视频同步 该文件是H.264和音频MPEG-4 AAC 根据要求,ffmpeg提供的文件详细信息:Audio 使用FFmpeg提高速度,而不是复制帧,将格式30帧转换为60帧/秒,audio,video,ffmpeg,h.264,frame-rate,Audio,Video,Ffmpeg,H.264,Frame Rate,我有一个视频错误地标记为30fps,它实际上是60fps,所以看起来像是以半速播放。音频很好,也就是说,音轨在视频剪辑的一半结束。我想知道,如果可能的话,如何解决这个问题,即视频速度加倍,达到60fps,这意味着音频和视频同步 该文件是H.264和音频MPEG-4 AAC 根据要求,ffmpeg提供的文件详细信息: ffmpeg version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
ffmpeg version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
built on Nov 9 2013 19:09:46 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './Tignes60fps.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2014-01-13 02:23:09
Duration: 00:08:33.21, start: 0.000000, bitrate: 5690 kb/s
Stream #0.0(eng): Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 5609 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
Metadata:
creation_time : 2014-01-13 02:23:09
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 156 kb/s
Metadata:
creation_time : 2014-01-13 02:23:09
At least one output file must be specified
使用
-vsync drop
:
ffmpeg-i input.avi-vcodec copy-vsync drop-r 60 output.avi
源时间戳将被销毁,输出muxer将根据给定的帧速率创建一个新的时间戳(
-r
开关)。好的,下面是我如何实现我想要的
avconv -i input.mp4 -r 60 -filter:v "setpts=0.5*PTS" output.mp4
这使得音频保持不变,因此现在它与视频很好地同步
这原本是一个视频,在实际速度为60帧时错误地导出为30帧/秒,因此视频以一半的速度播放两次,音轨完成了一半。上面修复了这个问题,加快了视频速度,没有丢失帧,现在以60fps的正常速度播放,并且与音频同步
罗格德帕克的建议值得称赞,但你的建议太少了!如果您能给出更完整的答案,我们将不胜感激 setpts filter可能会有帮助。您应该提供有关此文件的一些信息:
ffmpeg-i input
。请提供完整的控制台输出。我对问题进行了编辑,以提供这些详细信息。这只提供了“预期的vsync数量,但发现:删除”您使用的ffmpeg版本是什么?嗯。。。事实上,您使用的是libav,而不是ffmpeg。这需要解释一下。我准确地输入了命令,怎么不是ffmpeg?复制命令时也会出现同样的错误,但我知道我应该使用avconv替换ffmpeg。这超出了常识:-)ffmpeg是一个开源项目,它包含大量库(libavformat/codec/etc)和实用程序,如ffserver、ffplay、ffprobe和ffmpeg本身。几年前,ffmpeg社区的一些关键人物反叛ffmpeg维护者Michael Niedermayer,并制作了自己的ffmpeg,名为“libav”。出于某种原因,在一些linux发行版中,原来的ffmpeg已被avconv取代。因此,当您键入“ffmpeg”时,实际上运行的是avconv,它的命令行选项与原始ffmpeg可执行文件不同。