FFmpeg无重新编码分片时丢失帧的问题求助
FFmpeg无重新编码分片时丢失帧的问题求助
各位大佬好,我最近遇到了一个FFmpeg分片后丢失帧的棘手问题,折腾好一阵都没找到原因,来这儿求助大家!
情况是这样的:
- 我有一个名为
data的视频文件,先用ffprobe -i data -show_streams -count_frames -select_streams v | grep nb_read_frames命令统计,得到总帧数是39201帧。 - 为了把视频分成每段120秒的分片,我用了无重新编码的命令:
ffmpeg -i data -c copy -f segment -segment_time 120 -reset_timestamps 1 data_part_%d.mkv,最终生成了11个分片文件。 - 之后我用循环命令统计所有分片的帧数总和:
结果算出来总和只有36684帧,比原始视频的帧数少了2517帧,这差距实在有点大。for i in {0..10}; do ffprobe -i data_part_$i.mkv -show_streams -count_frames -select_streams v | grep nb_read_frames | cut -d '=' -f 2; done | awk '{s+=$1} END {print s}'
另外我还发现两个有点奇怪的现象,不确定和丢帧有没有关系,也一起说一下:
- 其中有一个分片,ffprobe显示它的时长是2分钟,但我查看这个分片里帧的时间戳时,发现最后一帧的时间戳只到63秒
- 可当我用VLC播放这个分片时,它又确实是2分钟长
有没有大佬能帮我分析下这是怎么回事?为什么无重新编码分片会丢这么多帧,这两个奇怪的现象和丢帧有关联吗?
备注:内容来源于stack exchange,提问作者Gman
相关产品推荐
相关产品推荐

