为什么使用CV2转换的视频文件(分辨率较低)比原始文件(分辨率较高)大



我试图使用cv2将视频文件的分辨率从854x480更改为640x480的较低分辨率,目的是缩小大小,但原始文件为3.2MB,转换后的文件为8.3MB。我还保持了相同的视频格式。我是视频处理的新手。为什么会出现这种情况?我如何修改以下代码以获得更好的结果?

提前谢谢!

这是我使用的代码:

import cv2
import numpy as np
cap = cv2.VideoCapture(r'C:UsersCSCDesktopSmartDesert1.mp4')
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(r'C:UsersCSCDesktopSmartDesert1_Output.mp4', fourcc, 25, (640, 480))
while True:
ret, frame = cap.read()
if ret == True:
b = cv2.resize(frame, (640, 480), fx=0, fy=0, interpolation=cv2.INTER_CUBIC)
out.write(b)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()

根据维基百科,mp4只是一种数字多媒体容器格式。这意味着mp4提供了一种将音频流和视频流捆绑在一个屋檐下的方法,即.mp4文件。在捆绑过程中,音频和视频经过压缩编解码器,最终转换为输出文件。

.mp4容器支持各种视频编解码器。你用来写视频的是mp4v。mp4v是原始mpeg-4视频流,因此这可能会增加视频的大小,尽管需要调整大小。

尝试其他编解码器可能会有所帮助。阅读本文了解可与.mp4 一起使用的各种编解码器

干杯!

最新更新