如何在VideoWriter_fourcc中设置参数?我想设置-pix_fmt yuv420p -preset ultrafast -crf 30。x264支持crf。h264不支持。opencv版本为4.6.0
import cv2 as cv
capture = cv.VideoCapture('input.mp4', cv.CAP_FFMPEG)
width = int(capture.get(cv.CAP_PROP_FRAME_WIDTH))
height = int(capture.get(cv.CAP_PROP_FRAME_HEIGHT))
fps = capture.get(cv.CAP_PROP_FPS)
fourcc = cv.VideoWriter_fourcc(*'x264')
writer = cv.VideoWriter('output.mkv', cv.CAP_FFMPEG, fourcc, fps, (width, height))
while capture.isOpened:
ret, frame = capture.read()
if not ret:
break
writer.write(frame)
if cv.waitKey(1) == ord('q'):
break
capture.release()
cv.destroyAllWindows()发布于 2022-07-01 18:29:52
您可以看看这个答案,他们使用振动装置库将OpenCV与FFmpeg连接起来。
from vidgear.gears import WriteGear
import cv2
output_params = {"-vcodec":"libx264", "-crf": 30, "-preset": "ultrafast", "-pix_fmt":"yuv420p"}
stream = cv2.VideoCapture(0)
writer = WriteGear(output_filename = 'Output.mp4', compression_mode = True, logging = True, **output_params) #Define writer with output filename 'Output.mp4'
while True:
(grabbed, frame) = stream.read()
if not is grabbed:
break
writer.write(frame)
key = cv2.waitKey(1) & 0xFF
if key == ord("q"):
break
cv2.destroyAllWindows()
stream.release()
writer.close()https://stackoverflow.com/questions/72831665
复制相似问题