遇到个有一半烂数据的视频, ffmpeg 截图出现如下错误. ffmpeg 读出来的视频长度也是错的。
为了获得真实的视频长度,可以这样:
1) 先算视频的总帧数
ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 coruptvideo.mp4 2>/dev/null
2) 算视频的帧率
ffprobe -v 0 -select_streams v -print_format flat -show_entries stream=r_frame_rate coruptvideo.mp4 2>/dev/null
3) 视频时长 = 帧数/帧率