当前位置: 首页 > news >正文

libvlc获取一帧_使用python vlc 读取视频图像帧

直接上代码:

import vlc

import ctypes

import time

import sys

import cv2

import numpy

from PIL import Image

vlcInstance = vlc.Instance()

m = vlcInstance.media_new("rtsp://admin:admin@172.16.1.60:554/h264/ch1/main/av_stream")

mp = vlc.libvlc_media_player_new_from_media(m)

VIDEOWIDTH = 1920

VIDEOHEIGHT = 1080

size = VIDEOWIDTH * VIDEOHEIGHT * 4

buf = (ctypes.c_ubyte * size)()

buf_p = ctypes.cast(buf, ctypes.c_void_p)

VideoLockCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(ctypes.c_void_p))

@VideoLockCb

def _lockcb(opaque, planes):

#print("lock", file=sys.stderr)

planes[0] = buf_p

@vlc.CallbackDecorators.VideoDisplayCb

def _display(opaque, picture):

img = Image.frombuffer("RGBA", (VIDEOWIDTH, VIDEOHEIGHT), buf, "raw", "BGRA", 0, 1)

opencvImage = cv2.cvtColor(numpy.array(img), cv2.COLOR_RGB2BGR)

cv2.imshow('image',opencvImage)

cv2.waitKey(10)

vlc.libvlc_video_set_callbacks(mp, _lockcb, None, _display, None)

mp.video_set_format("BGRA", VIDEOWIDTH, VIDEOHEIGHT, VIDEOWIDTH*4)

while True:

mp.play()

time.sleep(1)

相关文章:

  • 转发程序无法决定链接类型 | MRxSmb 3019
  • python百度知识_python入门基础知识
  • 关于如何使用策略禁止USB的问题
  • matlab 求向量的交集_MATLAB | TAM 211 存活指南 V3.0
  • idea通过svn上传_IntelliJ IDEA下的SVN使用(傻瓜式教学)
  • float拆分_Java 拆分PDF文档
  • 降龙十八掌
  • 删除wkNtFsLdf.dat文件(转)
  • swiper 移动端选项卡_UE4 助力高品质移动游戏(2)-移动平台光照
  • Linux 中文网站链接
  • python 正则匹配png_Python正则表达式之初始篇:字符匹配
  • jq获取页面高度_jquery常见获取高度
  • 用XML作sql和web应用的桥
  • 梅林安装opkg后安装iperf3_压滤机安装时需要注意的事项和安装后调试
  • 使用VSS-本地练习最基本的用法
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 《Java编程思想》读书笔记-对象导论
  • 【5+】跨webview多页面 触发事件(二)
  • CSS相对定位
  • Date型的使用
  • docker python 配置
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Linux后台研发超实用命令总结
  • Nodejs和JavaWeb协助开发
  • Python 基础起步 (十) 什么叫函数?
  • Spring核心 Bean的高级装配
  • vue-cli在webpack的配置文件探究
  • Vue组件定义
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用SAX解析XML
  • 数组大概知多少
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 用jquery写贪吃蛇
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ###C语言程序设计-----C语言学习(3)#
  • #QT(智能家居界面-界面切换)
  • (003)SlickEdit Unity的补全
  • (1)Android开发优化---------UI优化
  • (30)数组元素和与数字和的绝对差
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)求1到1亿间的质数或素数
  • (五)c52学习之旅-静态数码管
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)大型网站的系统架构
  • (转)母版页和相对路径
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET多线程执行函数