opencv与ffmpeg对于webm的不同结果

时间:2019-06-19 11:16:27

标签: python opencv ffmpeg webm

尝试按frame_id保存帧:

在ffmpeg中(我相信会产生有效的结果):

ffmpeg -i <video_filepath> -vf "select=eq(n\,<frame_id>)" -vframes 1 <frame_id>.png

在opencv中(会产生不同的结果):

def save_frame(input_video_filepath, output_image_filepath, frame_id):
    cap = cv2.VideoCapture(input_video_filepath)
    n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

    iter = tqdm(range(n_frames))
    for i in iter:
        flag, frame = cap.read()
        if i==frame_id:
            cv2.imwrite(output_image_filepath, frame)
            iter.close()
            break

为什么opencv版本会产生不同的结果?

更新

将webm转换为mp4,例如:

ffmpeg -i <input_filepath>.webm -r 25 <output_filepath>.mp4

然后使用这两种方法会产生相同的结果,所以据我了解,opencv的webm格式存在一些问题?

0 个答案:

没有答案