微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决来自视频文件的 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 举报,一经查实,本站将立刻删除。