【问题标题】:How to change mp4 file FPS value 30 to 5 using OpenCV如何使用 OpenCV 将 mp4 文件 FPS 值 30 更改为 5
【发布时间】:2021-12-26 22:02:00
【问题描述】:

我想将 mp4 文件的帧率从 30 更改为 5。我尝试了set(cv2.CAP_PROP_FPS, 10)。但它不起作用。我找不到使用ffmpeg 的方法。请帮我这样做。谢谢。

import cv2

cap = cv2.VideoCapture('./data/video/7e2.mp4')
fps = int(cap.get(cv2.CAP_PROP_FPS))
print('fps :'+str(fps))

if (cap.isOpened()== False):
  print("Error opening video stream or file")

while(cap.isOpened()):
  ret, frame = cap.read()
  if ret == True:
    cv2.imshow('Frame',frame)
    if cv2.waitKey(25) & 0xFF == ord('q'):
      break
  else:
    break
cap.release()
cv2.destroyAllWindows()

【问题讨论】:

标签: python opencv ffmpeg


【解决方案1】:

如果您正在读取文件,则文件不会被修改,原始文件的 FPS 将不会改变。 cv2.VideoCapture( ) 以读取模式打开文件。要保存视频文件,您需要使用 VideoWriter,然后使用打开输出文件

video.open(out_filename,VideoWriter::fourcc('M','P','4','V'),FPS, Size(FRAME_WIDTH,FRAME_HEIGHT),true) 

然后最后使用write函数进入每一帧。

所以您的代码将如下所示:

cv::VideoWriter video;
video.open(out_filename,VideoWriter::fourcc('M','P','4','V'),FPS, Size(FRAME_WIDTH,FRAME_HEIGHT),true)
In loop {
... Read Each Frame
 video.write(frame);

(我已经给出了C++代码,Python代码会类似)

我正在为您提供完整的代码。它应该可以工作。

import cv2

cap = cv2.VideoCapture('./data/video/7e2.mp4')
fps = int(cap.get(cv2.CAP_PROP_FPS))
print('fps :'+str(fps))
# Change the FPS whatever you want
FPS=5;
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
writer = cv2.VideoWriter('outpy.avi',cv2.VideoWriter_fourcc('M','J','P','G'), FPS, (frame_width,frame_height) )   
   
if (cap.isOpened()== False):
  print("Error opening video stream or file")

while(cap.isOpened()):
  ret, frame = cap.read()
  if ret == True:
    cv2.imshow('Frame',frame)
    writer.write( frame)
    if cv2.waitKey(25) & 0xFF == ord('q'):
      break
  else:
    break
writer.release()
cap.release()
cv2.destroyAllWindows()
                        

【讨论】:

  • 嗨@Prabir 你能根据我的场景重写这段代码吗?我试过了。但不行。
  • 我添加了完整的代码。请检查。
猜你喜欢
  • 2020-10-28
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 2020-01-07
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
相关资源
最近更新 更多