ffmpeg VS opencv 视频分割有什么不同?

What different video split ffmpeg VS opencv?

我用opencv和ffmpeg做了视频的取景工作。

opencv

import cv2

# 영상의 의미지를 연속적으로 캡쳐할 수 있게 하는 class
vidcap = cv2.VideoCapture("D:/godzillakingofmonster/GodzillaKingOfMonsters_clip.mkv")

count = 0

while(vidcap.isOpened()):
    # read()는 grab()와 retrieve() 두 함수를 한 함수로 불러옴
    # 두 함수를 동시에 불러오는 이유는 프레임이 존재하지 않을 때
    # grab() 함수를 이용하여 return false 혹은 NULL 값을 넘겨 주기 때문
    ret, image = vidcap.read()

    # 캡쳐된 이미지를 저장하는 함수 
    print("D:/godzillakingofmonster/frame/frame%d.jpg" % count)
    cv2.imwrite("D:/godzillakingofmonster/frame/frame%d.jpg" % count, image)

    print('Saved frame%d.jpg' % count)
    count += 1

vidcap.release()

ffmpeg

ffmpeg -i \"{target_video}\" \"{save_folder_path}/{media_name}_%08d.{exp}\"

我想知道这两种方法中哪一种会给您更准确的结果。

当一个帧被分割时,另一个帧被保存。为什么会有不同的结果?

ffmpeg 和 opencv 哪个方法更准确,打印结果更接近原始?

我假设 ffmpeg 也在存储 jpg 文件。在这两种方法中,您都没有指定 jpg 压缩量,因此您使用的是 运行 默认值,它们可能不同。

输出为未压缩格式,例如 .png 以在 ffmpeg 和 opencv 中获得 100% 准确的图像。