如何控制ffmpeg的关键帧生成?
我正在制作一个分段器,它将ffmpeg的write_frame函数和输出数据写入到单独的文件中。每个分段文件包含约3秒的视频片段 该守则规定:如何控制ffmpeg的关键帧生成?,ffmpeg,libav,Ffmpeg,Libav,我正在制作一个分段器,它将ffmpeg的write_frame函数和输出数据写入到单独的文件中。每个分段文件包含约3秒的视频片段 该守则规定: 1 - Get transcoded packet 2 - Check if it contains key frame data, if yes goto 3. 3 - Check the duration of current segment, if it exceed 3 seconds, goto 4 4 - Close file, an
1 - Get transcoded packet
2 - Check if it contains key frame data, if yes goto 3.
3 - Check the duration of current segment, if it exceed 3 seconds, goto 4
4 - Close file, and create new segment, write packet to segment file, goto-1
一般来说,每个片段至少包含3秒钟的视频数据,并且从关键帧开始
问题是输出视频的持续时间非常不同,有些包含3秒,有些包含5或6秒
我怀疑这个问题是由于ffmpeg在转码过程中如何生成关键帧造成的。如果两个相邻关键帧之间的“距离”为6秒,则我得到了6秒的分段
以下是我的问题:
最小GOP长度,I帧之间的最小距离。我必须在代码中设置“-keyint_min”值的地方。嗨,jAckOdE,你解决了这个问题吗?我现在面临着同样的问题。几年前,我记不起我到底做了什么。但我的想法是在一定的间隔内强制生成关键帧(请用谷歌搜索-force_key_frame)FFmpeg可能已经更改,从那以后您最好参考最新的文档。希望它能帮助确定我会检查,谢谢jAckOdE