来自视频文件的 Python 4 字符编解码器

问题描述

我做了一个函数来从视频文件获取不同类型的信息。

import cv2

def getInfo(sourcePath):
    video = cv2.VideoCapture(sourcePath)
    codec = int(video.get(cv2.CAP_PROP_FOURCC))
    codec_ascii = chr(codec&0xFF) + chr((codec>>8)&0xFF) + chr((codec>>16)&0xFF) + chr((codec>>24)&0xFF)
    codec_hex = hex(codec)
    info = {
        "framecount": video.get(cv2.CAP_PROP_FRAME_COUNT),"fps": video.get(cv2.CAP_PROP_FPS),"width": int(video.get(cv2.CAP_PROP_FRAME_WIDTH)),"height": int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)),"codec": str(video.get(cv2.CAP_PROP_FOURCC)),"codec hexadecimal" : codec_hex,"codec ascii" : codec_ascii
    }
    video.release()
    print(info)
    return info

getInfo("./video/my_video.mp4")

例如,对于 mp4 文件,我得到这个

{'framecount': 2024.0,'fps': 30.014849243598118,'width': 1920,'height': 1080,'codec': '808596553.0','codec hexadecimal': '0x30323449','codec ascii': 'I420'}

所以我知道颜色格式是yuv4.2.0 tank to the codec ascii。 但是当我选择 .yuv 视频时,它不起作用,并且我的函数没有返回任何内容

{'framecount': 0.0,'fps': 0.0,'width': 0,'height': 0,'codec': '0.0','codec hexadecimal': '0x0','codec ascii': '\x00\x00\x00\x00'}

为什么?是因为 cv2 无法处理 .yuv 文件吗?然而,它是一个视频文件,所以...... 感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)