Python OpenCV中的mp4视频编解码器

Python OpenCV中的mp4视频编解码器,python,opencv,Python,Opencv,OpenCV 4.1.1.26中mp4的视频编解码器是什么 我试着从两台摄像机上写视频,写AVI视频很好,但写mp4视频不行 Python 3.7 OpenCV 4.1.1.26 视窗10 下面是一个摄像头的示例代码 cap = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*'DIVX') out = cv2.VideoWriter('output_1.mp4', fourcc, 15, (640, 480)) 我在中使用了不同的

OpenCV 4.1.1.26中mp4的视频编解码器是什么

我试着从两台摄像机上写视频,写AVI视频很好,但写mp4视频不行

  • Python 3.7
  • OpenCV 4.1.1.26
  • 视窗10
下面是一个摄像头的示例代码

cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output_1.mp4', fourcc, 15, (640, 480))
我在中使用了不同的编解码器(MPEG、H264、mp4v、('m'、'p'、'4'、'v')、FFmpeg等),并由不同平台上的不同专家和帮助人员建议,但我的代码中没有任何解决方案,mp4视频已保存,但由于编解码器存在问题,即使在OpenCV VideoCapture中,也无法在任何媒体播放器中播放。另一方面,当我保存avi视频时,它工作正常。 我检查了这些链接以获得帮助


寻找有价值的建议

我也有类似的问题。我发现OpenCV python通常会在mp4文件中出现一些意外错误(无法从mp4文件中读取帧等)


为了解决这个问题,我所做的是使用skvideo(scikit视频)重新编写代码。scikit视频使用命令行FFmpeg工具,因此您需要在使用scikit视频之前安装FFmpeg。

如果相机提供的帧大于
(640480)
,则必须在将其保存到文件之前更改其大小。如果您不更改大小,则可能会创建空文件,然后无法播放。您可以详细解释一下吗?如果相机提供的帧大于
(640480)
,则您可能必须执行
frame=cv2。在保存前调整(frame,(640480))
。运行代码时,您不会收到错误消息吗?当我尝试使用扩展名
.mp4
DIVX
时,它会向我显示一条消息,
FFMPEG
无法创建它-但如果我使用扩展名
.avi
则创建文件没有问题。但是我使用Linux。