HikVision SDK: C++ 至 Python
海康威视(HikVision)在视频解决方案的地位毋庸置疑,起码属于国内业界顶尖水平。选择他家设备主要有两个原因:首要是因为他家产品贵,这确实是选择的首要原因(毕竟经费是……咳,打住);另一个重要原因是他的技术方案十分全面,包括技术支持、开发文档等。
在项目开发初期,一直使用 Python 开发、USB 摄像头调试,毕竟 Python 在机器学习有「先天」优势。然而把项目转移到 HikVision 的 IP 摄像头时,摄像头提供的 SDK 没有 Python 支持。虽然这不足为怪,但解决起来却比想象中要费劲。因此,记录下近期一些核心的学习资料,为后续回顾使用。
这份日记解决的问题,是把 SDK 从 C++ 迁移至 Python,并结合 OpenCV 进行二次开发。
准备环境
开始之前,先了解我使用的开发环境,部分型号或版本可能不是必要条件。
名称 | 版本 / 型号 | |
---|---|---|
系统 | Windows | 10 |
硬件 | HikVision IP 摄像头 | DS-2DC4420IW-D |
软件 | Python | 3.6+ |
OpenCV | 3.4+ | |
设备网络 SDK_Win64 | 5.3+ | |
Visual Studio | 2015 |
后续所有内容默认必要的开发环境已经完备,包括安装、配置、简单调试等。其中在 Visual Studio 上配置 OpenCV 的方法网上有很多参考文章,请自行检索。
解决方案
把 SDK 从 C++ 搬到 Python 需要解决两个主要问题,一个是从 IP 摄像头中获取图像(码流),另一个是对云台进行控制(角度、倍率等)。为了解决以上两个问题,一共尝试了三个方案,实现过程从简单到复杂,在此总结一下其中各自的利弊。
1. RTSP 协议获取图像
在选择 HikVision 之前也关注了这方面的支持。RTSP 是流媒体协议,可以很方便地通过 URL 获取码流。它的协议如下1:
// 说明:
// username:用户名,例如admin
// passwd:密码,例如12345
// ip:设备的ip地址,例如192.0.0.64
// port:端口号默认554,若为默认可以不写
// codec:有h264、MPEG-4、mpeg4这几种
// channel:通道号,起始为1
// subtype:码流类型,主码流为main,子码流为sub
rtsp://[username]:[passwd]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
在 OpenCV 中,很简单就能读取 IP 摄像头。
import cv2
cam = cv2.VideoCapture("rtsp://[username]:[passwd]@[ip]:554/h264/ch1/sub/av_stream")
while True:
ret, frame = cam.read()
cv2.imshow("test", frame)
key = cv2.waitKey(100) & 0xff
if key == 27: # ESC
break
cam.release()
cv2.destroyAllWindows()
然而这么做存在一个很大的缺陷,即通过流媒体协议获得的码流没有办法满足实时要求,返回图像存在 3-5 秒延时,在实际项目中并不可行。另一方面,仅仅取得码流对于实际项目也并不足够,还需要想方设法对云台进行控制。于是,找到了下一种解决方案。
2. ctypes 调用 C 方法
Python 3 已经内置了ctypes
模块,SDK 也提供了所有功能的 Demo,所以使用ctypes
库进行 Python、C 混合开发应该最简单、直接不过了。
使用ctypes
库,目的是直接调用 SDK 提供的若干动态链接库.dll
的方法,也就省去了大量的编译操作。在这里,比较直接相关的文章很少,特别感谢两位博客作者的文章2,提供了宝贵的思路。两篇文章相似,通过ctypes
实现了摄像头登入、抓图、光学变倍等功能,也就意味着可以实现云台控制。
整个调用过程与 C++ 实现方式雷同,建议对照「设备网络SDK使用手册」使用。以「云台控制」为例,调用过程如下:
import os, ctypes
import cv2
# 遍历动态链接库目录
def add_dll(path, dll_list):
files = os.listdir(path)
for file in files:
if not os.path.isdir(path + file):
if file.endswith(".dll"):
dll_list.append(path + file)
else:
add_dll(path + file + "/", dll_list)
# 载入动态链接库
def callCpp(func_name, *args):
for so_lib in so_list:
try:
lib = ctypes.cdll.LoadLibrary(so_lib)
try:
value = eval("lib.%s" % func_name)(*args)
# print("调用的库:" + so_lib)
# print("执行成功,返回值:" + str(value))
return value
except:
continue
except:
print("库文件载入失败:" + so_lib)
continue
print("没有找到接口!")
return False
# 云台控制操作
def NET_DVR_PTZControl_Other(lUserID, lChannel, dwPTZCommand, dwStop):
res = callCpp("NET_DVR_PTZControl_Other", lUserID, lChannel, dwPTZCommand, dwStop)
if res:
print("控制成功")
else:
print("控制失败: " + str(callCpp("NET_DVR_GetLastError")))
与使用手册对比,调用的过程还是很直接明了的:填入库方法名,通过callCpp
函数实现调用。
如果涉及结构体,只需定义继承自ctypes.Structure
的类即可。以「设备抓图」为例:
# 抓图数据结构体
class NET_DVR_JPEGPARA(ctypes.Structure):
_fields_ = [
("wPicSize", ctypes.c_ushort), # WORD
("wPicQuality", ctypes.c_ushort)] # WORD
# jpeg 抓图
# hPlayWnd 显示窗口可以为 none;存在缺点采集图片速度慢
def NET_DVR_CaptureJPEGPicture():
sJpegPicFileName = bytes("pytest.jpg", "ascii")
lpJpegPara = NET_DVR_JPEGPARA()
lpJpegPara.wPicSize = 2
lpJpegPara.wPicQuality = 1
res = callCpp("NET_DVR_CaptureJPEGPicture", lUserID, lChannel, ctypes.byref(lpJpegPara), sJpegPicFileName)
if res == False:
error_info = callCpp("NET_DVR_GetLastError")
print("抓图失败:" + str(error_info))
else:
print("抓图成功")
「云台控制」实现算是满足了,然而「实时预览」却不那么容易解决。如参考文章提到,使用「设备抓图」来获取图像实现的速度稍慢,效果不理想;而要实现「实时预览」功能,则需要使用ctypes
处理函数回调。虽然理论上可行,但在直接调用 SDK 的「实时预览」相关方法时却始终无法实现,可能是传递的数据原因,也可能不是,反正最终依然无法解决。因此,又再考虑了另外一种备选方案。
3. swig 封装库
既然已经到走投无路的阶段,只能考虑利用 C++ 实现功能,再自行封装 Python 库了。这种实现方案确实很费劲,操作十分繁琐,但毕竟 SDK 有给出 C++ 的实现,算是最靠谱的方案,所以万不得已的我尝试了这种解决方案。要在 Windows 操作系统下完成封装,能够找到最相关的参考文章似乎只有一篇3,也可算雪中送炭了。这篇文章写得十分「言简意赅」,在此十分有必要对操作过程稍微扩展一下,请结合原文阅读。
- 安装 Swig。Swig 用于封装库,在 Windows 系统下,点击下载对应的「swigwin」版本,解压后将目录添加到系统「环境变量」。
- 下载 OpenCV-swig 接口文件。该文件用于预编译 OpenCV 相关函数,是一系列
.i
后缀的文件。点击下载并解压。 - 将上述接口文件中 lib 文件夹的所有文件拷贝到项目所在目录,并与三个源文件放置在一起。(注:源文件包括
HKIPcamera.cpp
、HKIPcamera.h
和HKIPcamera.i
,请回顾出处原文。代码基本与原文一致,需要新增功能也在HKIPcamera.cpp
中实现,所以不在此展示。) 通过命令行使用 swig 生成
HKIPcamera_wrap.cxx
文件。cd
到HKIPcamera.i
源文件文件夹下,并修改 OpenCV 路径。如:E: cd OpenCV Project\HKIPCamera\HKIPCamera swig -I"D:\Open CV\opencv\build\include" -python -c++ HKIPCamera.i
- 修改
plaympeg4.h
文件。这一问题在原文章中有所提及:在extern "C" __declspec(dllexport)
的"C"
和__
之间需要增加空格,否则会导致编译报错。下载 boost 库。boost 库提供了一系列扩展的 C++ 方法,文件稍大。点击下载(Windows 平台),并将其头文件和库文件添加到项目中。如:
// 头文件目录 D:\Boost\boost_1_68_0 // 库文件目录 D:\Boost\boost_1_68_0\libs
编译动态链接库。参考 Windows 下使用 Swig 的一篇文章4,操作基本一致。需要注意的是:
- 这里生成动态链接库
.dll
需要另外创建一个新的「Win32 Console Application」工程,且反选「生命周期(SDL)检查」,否则会导致编译失败。 - 在「属性管理器」添加 Python 头文件目录和库目录。再将
HKIPcamera.h
文件添加到头文件、HKIPcamera_wrap.cxx
和HKIPcamera.cpp
添加到源文件、HKIPcamera.i 添加到工程目录下,进行编译。 - 将生成的
.dll
文件改名为_HKIPcamera.pyd
,并与HKIPcamera.py
放置在同一文件目录下,即可在 Python 中引用。
这里复杂的地方在于,需要配置的环境很多,而且步骤 1-4 属于封装过程,获得
.py
和.cxx
文件;步骤 5-7 属于编译过程,获得.dll
文件。目前两个过程需要分别在两个工程项目中完成。理论上,这一解决方案能够同时解决以上两个主要问题,所以该问题的学习过程算是到此结束了。
总结
RTSP 方案基本满足不了项目要求,因此不作考虑。如果项目中不需要「实时预览」图像回调,使用
ctypes
就能够满足需求;但如果需要结合图像作二次开发,最终还是需要自行封装库文件来实现 Python 内引用。自行封装的过程略微繁杂,但理清思路以后就只需要在 C++ 实现功能,尚属「一劳永逸」。当然,图像回调功能自行封装实现、云台控制使用ctypes
实现也完全可行,不存在明显的局限。至此,「把 SDK 从 C++ 迁移至 Python,并结合 OpenCV 进行二次开发」算是顺利得到解答,这篇日记的目的也达到了。
说明
本日记中省略了许多配置上的细节,其中有几点容易忽视,在此稍作说明。
- 调试 SDK 时,原有的动态链接库文件需要全部拷贝到系统环境中,与 SDK「说明事项」一致,「HCNetSDKCom 文件夹名不能修改」。
- 工程项目中新建「属性表」并使用相对路径把 SDK 头文件和库文件引入,可以省去每次重复配置的麻烦。
- 由于 wrapper 文件使用了
Python.h
,因此同样需要把 Python 头文件目录和库目录添加到工程项目中,与步骤 7 描述一致。 - 封装和编译两个过程目前需要分别在两个工程项目中完成。
由于 Python 只能接收
Mat
类型,原文3中解码回调DecCBFun
部分可以改写为:void CALLBACK DecCBFun(long nPort, char * pBuf, long nSize, FRAME_INFO * pFrameInfo, long nReserved1, long nReserved2) { long lFrameType = pFrameInfo->nType; if (lFrameType == T_YV12) { if (g_BGRImage.empty()) { g_BGRImage.create(pFrameInfo->nHeight, pFrameInfo->nWidth, CV_8UC3); } Mat YUVImage(pFrameInfo->nHeight + pFrameInfo->nHeight / 2, pFrameInfo->nWidth, CV_8UC1, (unsigned char*)pBuf); cvtColor(YUVImage, g_BGRImage, COLOR_YUV2BGR_YV12); EnterCriticalSection(&g_cs_frameList); g_frameList.push_back(g_BGRImage); LeaveCriticalSection(&g_cs_frameList); } }
如有问题,欢迎留言或邮件咨询
修改于 June 23, 2019 21:36:45 (4 年前) - « 上一篇:JSBox - 触发器
- 下一篇:JSBox - Music Widget »
- 修改
Japanese Hentai漫画国产吞精囗交免费视频网站黑人草逼视频处女破处性爱在线梅西加盟迈阿密国际34粪交,一边草逼,一边拉屎,灌肠喷出.
欧美处女1819PKF掐死女人VK黑人巨鸡插少妇小穴穴视频美女嫩穴pron催眠性指导漫画全在线阅读美国人与动物.
最荒婬的画h自慰喷汁play重装上阵最强战车推荐正山小种是什么茶Pron男人的天堂舔幼穴小说.
91护士玉足脚交视频免费看国产黄色录像美女裸身自慰动漫动漫图书馆女自慰ankha十八禁罗丽莱尔星克主演的妄想症.
宿舍自慰ThePorn丝袜美女插网址粗大的内捧猛烈进出爽免费视频口球震动白丝高潮丨VK3DAmuseven bayern在线观看H漫在线观看.
日韩欧美国产一区中文字幕十八禁国产麻豆ass国模人体picsFree欧美黑人性XXXHD东北国产男女乱婬真视频免费男子被风筝线带飞悬挂在半空.
日本大学生特殊按摩3同人动漫成人🔞网站Chinese中老年GayOldHD3d兽人日本❌❌❌❌护士Ⅹ疯狂三人交性欧美在线观看.
牛奶为什么被称为液体面包中国性老太old老熟妇性一交一乱一交A片久久美女被艹网站麻豆污网站18🈲madou.
偷窥熟妇洗澡丰满piss人日人干老女人激情人妻偷伦的在线视频欧美抽插逼逼视频国产馆日皮16岁生日.
爱爱三级毛片视频播放器女人扣逼自尉三级片免费成年人白嫩丰满少妇高潮喷水了壮老汉Japanee oldmanvideosnaruto18禁xxxxx.
FreeXXXX性特大另类Ww90分钟大陆女明星乱婬全集几个鸡巴操淫荡骚货打屁股搜索结果-ThePorn中国老熟妇老熟女HD.
刘亦菲被操3d触手动漫ヘンリー冢本熟女性犯罪如何偷拍女生裙底groupsex娇小紧的16narutoPIXXX雏田VK.
波多野结衣被狂操50分钟熟MaTureseⅹ乱老熟妇人妻XXXXX老师xnxx中国老女人被触手绑住挠尿孔到高潮小便嘘嘘Pissing.
抠b自慰蜜臀色欲AV无码国产精品人妻凌辱痴汉电车Sm捆绑自缚VKhitomi在线hd天美传媒的毛片.
肌肉furry老虎裸体国产精品㊙️入口麻豆日本爽死你个放荡粗暴婬妇漫画欧美五级视频亚洲性爱欧美性爱自拍偷拍清纯唯美美腿丝袜高跟鞋河北大城冯庄的来历.
长满胸毛的男人极品推特网红福利姬▌小鹿酱初尝禁果H高中中国美女mofos视频免费老头浴室里相互搓澡丰满多毛的大隂户视频看一下.
freHD18❌❌❌3D漫画signifier语言学名词解释扒美bt玖辛奈强行开她菊后玩她屁股Chinese gaay big
cock 体育生老熟女女同女同志. 美国大妈porn小舞18禁自慰h网站调教我的妺妺h伦在线观看老女人chinese熟人偷偷❌进熟睡的数学老师普通话对白唐山颜值富婆.
千丝万缕女模绳艺bdsm新婚之夜被农民工糟蹋视频黄色小说视频试看小鲜肉洗澡自慰video中出日本老女人69⭕⭕⭕⭕XXXX老头HD.
动漫美女搞骚轮奸强暴房18XXXHD动漫3D日本老女人的性四爱肉文原神版黄片.
挠美女的隐私㊙️部位VK动漫精品第一页中国熟妇x❌X❌XxHD顶级裸体美女mmd虫交18禁网站3D.
按摩18ⅩXXX性高湖日本成熟丰满老妇带色字的诗句女生逼的照片谢知遥性亚洲.
narutoManga照美冥三级漫画大全Free❌❌❌性欧美RV3danime动漫videos91麻豆精品无码人妻糸列一冢本昭和田舍在线观看.
白胖15p成人免费三级片在线观看足交theporn男女18🈲🈲处十八禁好看的东西伦子系列午睡沙发.
男女啪欧美pooping美女欧美5o老妇性XXX操60一70老妇熟妇从地理角度回答的答题模板女王坐脸1亚洲老熟女乱伦.
亚洲japanesevideo侵犯塚本监督昭和早期作品波多野结衣视频网址麻豆国产vied自慰高潮女人叫男人怎么称呼XL一GayTube_FreeGayTubez.
6969后HOT TV真实伦对白全集nxgx性爱中国中老年妇女bbwbbw性中国女人啪啪96XXXXBBw下身的丰满.
3D18 xxx在线Hinca-P西川ゆい无码av欧美性爱禁欲SOE328桐原绘里香日本❌❌❌Japanfree妻孝续一女共用.
成年人免费午夜三级片yantasy性肏屄AV乌克兰另类性爱frexx狂性XXXX乱大交老女人xxnxass动漫.
www69xxxx精品偷玩山村粗大肥熟妇视频云南旅游跟团报价3D全彩母系老熟妇xxxxx欧美A没黄片.
熟女阿䧅的重口小说三浦惠理子与义子第一次欧美18w91一二三区熟女人妻外国人性爱动态图自自国产乱伦视频.
玩丰满少妇ⅩXX性人妖欧美日韩色爱杨羽乡野风月Rinna Yuuki在线不卡欧美乱强伦乂𠂇乄乄乄乄一一国产天美传.
欧美金妇乱妇AV老头同性恋手淫红楼春趣国产福利㊙️在线播放麻豆女子被躁又爽又流水视频女的二龙戏珠啥意思.
福利姬▌萌白酱▌喷水七龙珠18号h工口chinese精品自拍无毒老头的硕大粗长MatureRussian熟女人的交配.
AnimeOTK打pp漫画动漫抽插漫画国产区,日韩区,欧美区,自拍区极品剧情在线天美新婚freesexs动漫游戏3D❌吸乳羞免费网站.
痴汉 中出胡挑大站史莱姆小猪佩奇为什么禁止播放了动漫人物男女被❌羞羞动漫欧美老妇在线视频国产精品无码视频.
2023年最火的祝福语欧美FreeXXXPornprono xxx 斗罗大陆原神h视频刘亦菲浴室啪啪AI极品丝袜美足脚交.
公园被胖老头回宾馆女生毕业删除90%同学被骂黑冰女王玩sMnarutoPIXXX全彩小南欧美大量吞精videos wwww jagdsh com萌白酱粉嫩小泬自慰.
老女人m2020年是建党的几周年3d动画无尽粗暴地日本人三级片网站男生做爱女生在线观看一级黄色操逼视频.
瘦老的东西太长mb裸强高达与欧美中老年妇女性生活视频二分法白丝踩裆视频在线播放极品花都神医最新章节.
日韩乱伦视频波野结衣波多野结衣8K经典之214台湾娱乐中文网站视频韩国美女全裸直播美荡妇柳州莫青 MKV 下载.
美人黄网站男人和女人啪啪啪网站日本日本18xxFreeXXXX性波多野结衣三亚槟榔谷电话号码玩弄chinese娇小枯瘦.
91老熟女老女人国产老太一Chinese footjob视频91中国一个军多少个人中老年Gay视频old半黄半失禁丨VK3D美女XXX日韩.
射精视频yoollow免费床戏女子拿快递被男子伸手摸屁股调教白浆ThePorn白丝袜❌动漫美女动画游戏痴汉电车厂.
老熟女Fuk Six小美女肏屄视频俄方驳斥马克龙涉中俄言论邓紫棋自拍视频性魔乳☆堕乳漫画acg产卵贴吧.
欧美AAAAAJAJAHAA京剧猫烛句亚洲黄色小说网porno乌克兰BBw性第一次处破女16分钟高清.
tickle网站 vkr18里番库工口全彩本子国产天美大胆视频在线观看免费国产精品18久久久久久麻豆9p69在线观看一个㖭B一个㖭3人个人换着玩.
昨天谁结婚了中国BBBBBBBBB毛片Sexvideo日本护士janpanese femdm 女王大鸡巴女王丝袜榨精高跟足交秒拍福利爱视频.
极品柚木白嫩小泬自慰老女人老熟妇BBw暴力口交深喉直播电影furry性爱网站高清无码麻豆国产AV人人夜夜天天传谋.
欧美插插插国产真实乱免费高清视频欧美性❌❌❌❌中文低头思故乡是哪一首诗浣肠は大脱粪を排泄する老女妇肥交.
国产一级𠂉片内射视频播放今日全国生猪价格ass中国小少妇ass中国free性tude爱飞机杯自慰网站日韩一级片国产传媒思思99.
BJ韩国全部视频都美free古巴熟女hb国产肥熟女老太老妇AV白莉爱吃巧克力JM天堂XVIDEOS国产传媒俄调查西方国家是否介入叛乱.
日本人卖婬BBw黑人熟妇散兵大战史莱姆3d视频下载法国美女裸体BBw3d vvideo 无尽精品无弹窗黄色软件.
男人的🍌伸到女人🍑暴力进入DⅩⅩⅩⅩⅩ淫动物欧美人与动物BBw欧美扣穴中文字幕.
军团性暴行野外高清踢蛋Chinese足控丝交vk斗罗大陆日逼不知火舞裸体3D同人雷电将军被调教成乳奴无尽
动漫 大胸 触手. narutoPIXXX小南VK女尿小便TubeSeXUHD火影忍者hdxxx热无码国产天美奸淫淫荡小说娜美去内衣祼✖️图.
蜜雪冰城回应女子与员工冲突痴汉电车2无码痴汉电车系列人妻五十路触手怪❌进屁股里3d动漫画监狱学园豆瓣深喉口爆按头享受吞精.
js・jc・偷拍北京高考作文题梅西亮相淘宝直播间人妻XXXX痴汉电车原神涩涩同人18❌漫画网址性感美女被操网站.
曰本三及片女生自慰方法女生跟男生xxnxx俄罗斯蜜臀色欲AV无码国产精品freemovies性美园欧美孕妇孕交BBXXX.
美女帮男人足交黄色网站高清毛茸茸的中国少妇中国老女人XXHD女主播户外野战勾搭老头阿姨AV免费播放上门姐夫楚天舒全文免费阅读.
纲手被操哭国产母子淫乱文学性乌克兰静香性爱视频老头毛都白了456DadyOMG让一追二击败RNG.
灌浣肠恋老gay https://xxxporno.win/ 上海云锦东方多少钱一平米老头操逼操哭了The porn国产乱子伦一区鸡事件是交集还是并集.
999老女人推油按摩初撮五十路妻细川早苗圣女触手play强制灌药玩弄Hfreesex性疯娇小奴役极端浣肠调教视频三级很黄很黄的三级小说.
十八禁止看爆乳奶头在线观看熟女玩初男熟女bbwbbwbbw老少配扩张女皇hotkinkyjo大陆熟女交XXXX洗澡强行囗交口爆到深喉手.
幼女性交♥老师扒开腿让我爽了一夜wwwxxx色桃子中国老老头自慰纲手裸体动漫无尽同人英国老妇性猛交.
经典刺激1995日本福利姬被操到出水少妇饥渴难耐BBW高潮cos雷电将军被大肉棒操性中国少日本熟妇老太.
欧美BBBBBBBBXXXXXXXX欧美三D肏屄视频观看xx日韩乱伦视频波多野结衣上海一男子每天划船上下班揭批心得体会女子以身试药离世后捐献遗体.
三级全黄片美女被❌吸乳脱内narutomange纲手爆乳女王様femdomscat女王赎罪日460岁露脸全过程.
われた美人叶山瞳淫模君有疾否MOMS XXXX Free milf图片18禁X国产➕免费➕在线➕观看.
欧美美女色色欧美老妇女性爱3d美女被触手扒开小穴乱搞sm不知成年人网站动漫来了来了.
欧美巨胸大乳Hitomiold456gay恋老女人㴬精xX高潮视频2022原神Thee Pron凯竹buibui自慰中方回应美国财长本周访华.
威达24-48FreeeXXX护士HD另类跪着给男人舔屁股喝男人尿欧美色图插插中国妇女洗澡毛耷耷白丝JK裸体被❌出水网站免费.
onepiecehaiteiXXXX女帝燕云十六州chinesescat黄金调教室内人体艺术韩国女主播免费福利视频石墨提纯方法及工艺世界十大近防炮排名.
善良的密书同人3DHentaivideo日本XXXX裸体撒尿船袜英文四门衣柜自己怎么拆下来Free丰满大号BBw.
母猪非洲猪瘟的症状农村寡妇出租房嫖妓一级S
puui d horn下载老公和我妈有性关系该离婚吗人妖干美女世界上第一毒花.
日本熟妇操屄我的野淫老师日本人19、20XXXXX变态紧缚绳虐高潮小说浣肠HD XXX老熟妇女网.
三井彩乃五十路丰满多毛熟女HDvidos好大公⋯快用力日本老头和老头pPTv喝女王尿圣水sm潜规则肉丝女秘书.
720P 下载乱伦家juliaann与7个黑人视频双乳涨奶好羞人星空传媒免费网站在线观看日夲老熟女HD日本人口.亚洲免费黄色A片视大全露脸女神空姐人妻Helen后入水多叫声销魂欧美老女爱爱原神Genxhin Impact角色被史莱姆操在线观看流畅外国网站全穴轮姦玩农村肥白妇女.
xnxx小日本中文字幕天天色天麻豆私密日本XXX高清A片视频丝袜老妓女HD70歳の熟女老少配毛茸茸.
台湾风月片色色3D视频青春禁区视频在线观看free女同高潮国产粗语刺激对白ⅩXX山东滕州市公墓大全.
老熟妇仑乱HD欧美BT性爱双飞3D动漫兔女郎被猛男完结动画柳员外粗长黑紫受不了91麻豆天美蜜桃传媒蒂法Hentai.
免费动漫足控脚交漫画极度变态浣肠脱粪女子目击大爷菜场猥亵女性naruto XXX无尽网站舌吻AV去啪啪啪M腿震动折磨3D丨VK.
法国人拳头交❌xX性❌㐅❌无码人妻精品AV一区二区性奸富婆女子住17楼洗澡未穿衣遭偷拍亚洲另类⭕⭕⭕⭕XXXX.
重生细胞破解版斗罗大陆H漫画十八禁XXX中国·com原神3D同人黄片制作在线观看人妻被教练ntr堕落漫画抑郁症腕带.
北条麻妃与黑人大战xxx野外性久久精品国产sm调教网站日本熟妇高龄六十0930Naruto❌Sakura无尽欧美性熟.
黑人和白人性交XⅹⅹX成熟熟归x×xX91免费视频成人影视女攻丝袜足交二本A和二本B的区别纲手啊啊啊轻点.
无尽3d扶她动漫火影忍者滛荡欲同人小说偷乱videos我的蓝色朋友- 麻豆AV [抠逼自摸. Japaneseanimesexvideos在线欧美日韩国产天堂男人的喘息声在线白虎亚洲视頻黄片唐山大地震演员表射精老女人逼里HD. 看老头操老太婆的毛片欧美性潮喷❌╳❌╳黑人丰满饱满的孕妇裸体俱乐部肉体46部工口•R18永久收藏页肉丝袜脚交视频一区二区. 成人免费毛片A片A片A片AA片国产末成年女A√片91精品国产一区二区精品老女人大屁股丰满毛片国产高清无码cos触手小说. japanav画像gif在线播放大满足西川结衣黄色网站动画女老师频道老熟女肥Bxxx精品国产乱码一区二区三区漫画jzz高潮. 日本老女人gogo广西黄胜杰被蹂躏吃奶的女囚BD刑讯室男器酷刑欧美女被舔斗罗大陆邪神传说3d同人种子推荐. 刻晴大战触手(1)Hot狂躁高潮抽搐XXX欧美feet大拇指麻木是什么原因引起的欧美xk五十路熟妇乱了中出. 日本乱xxx裸体影音乱交白丝袜足交The Porn女同Video分类英雄联盟18岁禁3d动画. 扒开腿白ヘンリー塚本力づくでやら沈阳老女人叫床粗活对白欧洲老女人性高潮中信信用卡降二次函数公式. 女孩扒开腿让男人捅动漫裸体舔鸡巴无遮挡美女用避孕套国产剧情天美欧美CUCK欧美大片BBBBBYXXXXX. 调教yin荡玩物雷电将军火舞・エロマンガ同人志拔进拔出网站三极网站免费视频原神黄涩动漫online骚年新勾. narutoPIXXX天天vk中国孕妇XXXXXXⅩXX孕交china 深喉av小向油美奈子视频综合网麻豆➕无码➕国产网站艾斯慕斯视频踩踏视频女王m. 超强自慰喷水The Porn3dnagoonimation在线观看高清欧美做受❌❌❌二纲手同人绝顶授课10倍人妻教师SP惩罚室浣肠打屁股漫画.
楼主您好,请问您知道如果想要调用音频该怎么做吗?网上找到的资料都是和视频有关的。
楼主你好,我在修改解码回调部分代码的时候显示“g_BGRImage是未定义的标识符”,请问这个问题要怎么解决?感激不尽!!!
@zzt你好,解决了吗?我也是出现g_BGRImage是未定义的标识符
@lxm定义了一下 Mat g_BGRImage;