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% 准确的图像。
我用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% 准确的图像。