我想知道视频的家庭代码以转换为 YUV,而不使用扩展。
通常,.mp4 和 .avi 是 RGB 格式,我想将它们转换为 YUV 并使用 .split() 保留 Y (luma),如果视频已经在 .yuv 或 .mov 中,则直接进行分割()
这是我所做的,但 .mp4 文件并不总是 RGB,对于 .avi 文件等也是如此,而且我还需要视频的结构( yuv4.2.2 、 4.2.0 ...)
还有其他方法可以直接获取视频的家庭代码(fourCC?)和YUV的结构吗?谢谢你的帮助
import cv2
import numpy
from os import listdir
from os.path import isfile, join
video = cv2.VideoCapture(FilePathEdit)
success,img = video.read()
onlyfiles = [f for f in listdir("./video") if isfile(join("./video", f))]
print(onlyfiles)
for fp in filepaths:
# Split the extension from the path and normalise it to lowercase.
ext = os.path.splitext(fp)[-1].lower()
# Now we can simply use == to check for equality, no need for wildcards.
while ((success)and(video.get(cv2.CAP_PROP_POS_MSEC)!= End)):
if ext == ".mp4" or ext == ".avi":
img_yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
y, u, v = cv2.split(img_yuv)
"..."
elif ext == ".mov" or ext == ".yuv":
y, u, v = cv2.split(img)
"..."
else:
print(" Video extension is: " + ext + ", extraction not possible")