问题描述
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 (将#修改为@)