首页 > 编程语言 >【教程】如何使用 MYScrcpy,一行Python代码获取Android设备 屏幕/摄像头 H264/H265 原始视频流

【教程】如何使用 MYScrcpy,一行Python代码获取Android设备 屏幕/摄像头 H264/H265 原始视频流

时间:2024-09-10 22:52:46浏览次数:12  
标签:Python H265 视频流 H264 video MYScrcpy VideoArgs 摄像头

MYScrcpy 1.5.8

Github / Gitee


1.5.8版本新增获取原始视频流(H264/H265)方法,供小伙伴们在需要原生H264/H265串流时使用

要求


  • MYScrcpy > 1.5.8

pip install -U mysc

  • 安卓设备开启调试模式,安卓版本 > 5 (摄像头需 > 11)
  • H265需安卓设备支持H265编码

步骤


MYScrcpy从设计之初,就是想为小伙伴们打造一款好用易上手的工具包,所以使用起来也非常简单

# 首先引入相关包
from adbutils import adb
from myscrcpy.core import VideoAdapter, VideoArgs

# 一行代码搞定
video_conn = VideoAdapter.raw_stream(adb.device_list()[0], VideoArgs(max_size=1366,video_codec=VideoArgs.CODEC_H264))

当显示 XXX | SUCCESS | myscrcpy.core.video:raw_stream:344 - Raw Video Stream Ready! Codec: h264 | w/h ( 1360 / 848 ) | Right 日志时,则连接成功

接下来就是你尽情发挥的时刻了!

while True:
	# 获取视频bytes流
	video_bytes = video_conn.recv(1024 * 32)
	# YOUR CODE HERE
	# 推流、解析、自由发挥
	# 记得跳出循环
	break

# 关闭视频连接
video_conn.disconnect()

有关视频格式,可以通过定义VideoArgs/CameraArgs进行控制,例如,调用手机前置摄像头,分辨率为800x600,H265格式。则定义如下参数并传参即可:

video_args = VideoArgs(
	# 定义编码
    video_codec=VideoArgs.CODEC_H265,
    # 定义视频来源 屏幕/摄像头
    video_source=VideoArgs.SOURCE_CAMERA,
    # 定义摄像头参数
    camera=CameraArgs(
        camera_id=1,
        camera_size='800x600'
    )
)
video_conn = VideoAdapter.raw_stream(adb.device_list()[0], video_args)

是不是很简单!

更多内容,访问G/G进行探索吧!

标签:Python,H265,视频流,H264,video,MYScrcpy,VideoArgs,摄像头
From: https://blog.csdn.net/weixin_43463913/article/details/142110867

相关文章

  • Python Pyqt5 将ui文件转换成py文件
    命令行pyuicyour_ui_file.ui-ooutput_file.py如果是虚拟环境,则需要提前进入虚拟环境中执行pyuic命令uitopy文件的使用如果是ui文件转换过来的py文件,不要直接在此py文件中编写代码。如果你的ui文件发生变换就需要重新生成py文件,这个时候新的py文件就会覆盖历史的。正确使......
  • SciTech-Mathmatics-Probability+Statistics-Sampling : Learn Stats for Python III:
    LearnStatsforPythonIII:ProbabilityandSamplingBYIVÁNPALOMARESCARRASCOSAPOSTEDONSEPTEMBER9,2024ProbabilityandSamplingAboutPartIII:ProbabilityandSamplingPartIIIdivesintoappliedprobabilitytheory,concretelybymodelingdiscrete......
  • Python 网络编程
    什么是Socket?socket()函数参数Socket对象(内建)方法简单实例服务端客户端PythonInternet模块Python提供了两个级别访问的网络服务:低级别的网络服务支持基本的Socket,它提供了标准的BSDSocketsAPI,可以访问底层操作系统Socket接口的全部方法。高级别的网络......
  • 解决python封装Logging模块后,log位置显示错误的问题
    引入今天由于项目需要,要将logging库二次封装成一个类,以实现一些自定义的功能。我将二次封装了一个logService类,然后在其中同样也实现info,warn,error等日志函数。额外加了一个将日志存入数据库的功能。大概是像下面这样子:但是在封装的过程中,出现了一个问题:log中,不能正确显......
  • 【Python篇】matplotlib超详细教程-由入门到精通(下篇)
    文章目录前言第六部分:保存与导出图表6.1保存为图片文件示例:保存图表为PNG文件解释:关键点:6.2保存为高分辨率图片示例:保存为高分辨率图片解释:6.3保存为不同文件格式示例:保存为不同文件格式解释:6.4调整图表的保存尺寸示例:设置图片尺寸并保存解释:6.5解决中文乱码......
  • python爬虫连载17
    文本属性设置行高、缩进、字符间距。text-align:设置文本对齐方式,属性值取left、center、right。line-height:设置文本行高,属性值取具体数值来设置具体行高。text-indent:代表首行缩进,text-indent:100px,意思是首行缩进100个像素。letter-spacing:设置字符间距。默认是normal,字符之间没......
  • RAG与LLM原理及实践(17)---Docker Redis & Python Usage
    目录背景Redis环境download修改镜像RunRedisCodingpythonredisdownload基本使用描述完整代码运行结果高阶用法序列化的方式 Snapshot与AOF快照(RDB)AOF(Append-OnlyFile)代码总结发布与订阅描述     代码运行结果注意事项解释Transanction......
  • 第二章python基本语法
    位运算符例1:检测列表里重复元素l=[1,3,5,7,8,3,9,4,2,5,6]flag=0foriinrange(len(l)):if(1<<l[i]&flag)>0:print("重复:%d"%l[i])flag|=(1<<l[i])#flag=flag|(1<<l[i])注:flag记录已经出现过的元素,其实用对应位为1表示出现的式子例如3就用1000表示当前数字......
  • 《在 Windows 系统中配置 Python 3.11 环境安装教程》
    一、引言Python是一种广泛使用的高级编程语言,具有简洁、易读、可扩展性强等特点。Python3.11是Python的一个重要版本,带来了许多新的特性和改进。本文将详细介绍在Windows系统中配置Python3.11环境的步骤,帮助读者快速搭建Python开发环境。二、安装前的准备(一......
  • Python数据结构集合的相关介绍
    集合是一种无序、可变的数据结构,它也是一种变量类型,集合用于存储唯一的元素。集合中的元素不能重复,并且没有固定的顺序。在Python提供了内置的 set 类型来表示集合,所以关键字set就是集合的意思。你可以使用大括号 {} 或者 set() 函数来创建一个集合。my_set={1,2,......