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

建网站公建网站公司长春做网络推广的公司

建网站公建网站公司,长春做网络推广的公司,抓取式网站建设,大连网络推广网站优化找哪家好一、引言 在本文中#xff0c;我们将详细介绍如何使用 Python 进行视频的推流操作。我们将通过两个不同的实现方式#xff0c;即单线程推流和多线程推流#xff0c;来展示如何利用 cv2#xff08;OpenCV#xff09;和 subprocess 等库将视频帧推送到指定的 RTMP 地址。这…一、引言 在本文中我们将详细介绍如何使用 Python 进行视频的推流操作。我们将通过两个不同的实现方式即单线程推流和多线程推流来展示如何利用 cv2OpenCV和 subprocess 等库将视频帧推送到指定的 RTMP 地址。这两种方式都涉及到从摄像头读取视频帧以及使用 ffmpeg 命令行工具将视频帧进行编码和推流的过程。 二、单线程推流 以下是单线程推流的代码 import cv2 as cv import subprocess as spdef push_stream():# 视频读取对象cap cv.VideoCapture(0) fps int(cap.get(cv.CAP_PROP_FPS))w int(cap.get(cv.CAP_PROP_FRAME_WIDTH))h int(cap.get(cv.CAP_PROP_FRAME_HEIGHT))ret, frame cap.read()# 推流地址rtmpUrl rtmp://192.168.3.33:1935/live/# 推流参数command [ffmpeg,-y,-f, rawvideo,-vcodec,rawvideo,-pix_fmt, bgr24,-s, {}x{}.format(w, h),-r, str(fps),-i, -,-c:v, libx264,-pix_fmt, yuv420p,-preset, ultrafast,-f, flv, rtmpUrl]# 创建、管理子进程pipe sp.Popen(command, stdinsp.PIPE, bufsize10 ** 8)# 循环读取while cap.isOpened():# 读取一帧ret, frame cap.read()if frame is None:print(read frame err!)continue# 显示一帧cv.imshow(frame, frame)# 按键退出if cv.waitKey(1) 0xFF ord(q):break# 读取尺寸、推流# imgcv.resize(frame,size)pipe.stdin.write(frame) # 关闭窗口cv.destroyAllWindows()# 停止读取cap.release()在这个单线程的实现中我们执行以下步骤 初始化视频读取对象 使用 cv2.VideoCapture(0) 来打开默认的摄像头设备。获取摄像头的帧率 fps、宽度 w 和高度 h 等参数。 设置推流地址和参数 定义 rtmpUrl 作为推流的目标地址。构造 ffmpeg 的命令列表 command该列表包含了一系列的参数如 -y 表示覆盖输出文件、-f rawvideo 表示输入格式为原始视频等。使用 sp.Popen 创建一个子进程将 ffmpeg 命令作为子进程运行并且将其输入管道 stdin 连接到我们的程序。 循环读取和推流 在一个 while 循环中不断读取摄像头的帧。若读取失败打印错误信息并继续。使用 cv2.imshow 显示当前帧同时监听 q 键按下 q 键时退出程序。将读取到的帧通过管道发送给 ffmpeg 进行推流。 三、多线程推流 以下是多线程推流的代码 import queue import threading import cv2 as cv import subprocess as spclass Live(object):def __init__(self):self.frame_queue queue.Queue()self.command # 自行设置self.rtmpUrl self.camera_path def read_frame(self):print(开启推流)cap cv.VideoCapture(self.camera_path)# Get video informationfps int(cap.get(cv.CAP_PROP_FPS))width int(cap.get(cv.CAP_PROP_FRAME_WIDTH))height int(cap.get(cv.CAP_PROP_FRAME_HEIGHT))# ffmpeg commandself.command [ffmpeg,-y,-f, rawvideo,-vcodec,rawvideo,-pix_fmt, bgr24,-s, {}x{}.format(width, height),-r, str(fps),-i, -,-c:v, libx264,-pix_fmt, yuv420p,-preset, ultrafast,-f, flv, self.rtmpUrl]# read webcamerawhile(cap.isOpened()):ret, frame cap.read()if not ret:print(Opening camera is failed)break# put frame into queueself.frame_queue.put(frame)def push_frame(self):# 防止多线程时 command 未被设置while True:if len(self.command) 0:# 管道配置p sp.Popen(self.command, stdinsp.PIPE)breakwhile True:if self.frame_queue.empty()! True:frame self.frame_queue.get()# process frame# 你处理图片的代码# write to pipep.stdin.write(frame.tostring())def run(self):threads [threading.Thread(targetLive.read_frame, args(self,)),threading.Thread(targetLive.push_frame, args(self,))][thread.setDaemon(True) for thread in threads][thread.start() for thread in threads]在这个多线程的实现中我们使用了 threading 和 queue 库 类的初始化 创建一个 Live 类在 __init__ 方法中初始化帧队列 frame_queue、command、rtmpUrl 和 camera_path 等变量。 读取帧的线程方法 read_frame 方法中使用 cv2.VideoCapture(self.camera_path) 打开摄像头。获取摄像头的参数并构造 ffmpeg 命令。不断从摄像头读取帧并将帧放入队列 frame_queue 中。 推流的线程方法 push_frame 方法中等待 command 被设置然后使用 sp.Popen 启动 ffmpeg 子进程。从帧队列中取出帧并将其写入 ffmpeg 的输入管道进行推流。 启动线程 run 方法创建并启动两个线程一个用于读取帧一个用于推流并且将它们设置为守护线程。 四、代码解释和注意事项 单线程推流 这种方式相对简单适合初学者理解。但由于是单线程操作在处理复杂任务时可能会导致性能瓶颈特别是在同时进行视频显示、读取和推流的情况下可能会出现卡顿现象。 多线程推流 利用多线程可以将不同的任务分配给不同的线程提高性能。frame_queue 是一个线程安全的队列用于在两个线程之间传递帧数据避免了数据竞争问题。setDaemon(True) 使得线程在主线程结束时自动终止防止程序无法正常退出。 五、总结 通过上述代码和解释我们可以看到如何使用 Python 进行单线程和多线程的视频推流操作。单线程代码简单明了但性能可能受限多线程代码可以更好地处理高负载但也需要注意线程安全和资源管理等问题。在实际应用中我们可以根据具体的需求和硬件性能来选择合适的推流方式。同时我们可以进一步优化代码例如添加异常处理、优化帧处理逻辑等以提高程序的稳定性和性能。
文章转载自:
http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn
http://www.morning.tmrjb.cn.gov.cn.tmrjb.cn
http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn
http://www.morning.zdzgf.cn.gov.cn.zdzgf.cn
http://www.morning.gctgc.cn.gov.cn.gctgc.cn
http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn
http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn
http://www.morning.swsrb.cn.gov.cn.swsrb.cn
http://www.morning.yqrgq.cn.gov.cn.yqrgq.cn
http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn
http://www.morning.fxygn.cn.gov.cn.fxygn.cn
http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn
http://www.morning.jbxfm.cn.gov.cn.jbxfm.cn
http://www.morning.ghryk.cn.gov.cn.ghryk.cn
http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn
http://www.morning.knlgk.cn.gov.cn.knlgk.cn
http://www.morning.grpfj.cn.gov.cn.grpfj.cn
http://www.morning.wbfg.cn.gov.cn.wbfg.cn
http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn
http://www.morning.jyyw.cn.gov.cn.jyyw.cn
http://www.morning.kqxng.cn.gov.cn.kqxng.cn
http://www.morning.xhftj.cn.gov.cn.xhftj.cn
http://www.morning.jcfdk.cn.gov.cn.jcfdk.cn
http://www.morning.lxmmx.cn.gov.cn.lxmmx.cn
http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn
http://www.morning.deanzhu.com.gov.cn.deanzhu.com
http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn
http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn
http://www.morning.mtmph.cn.gov.cn.mtmph.cn
http://www.morning.wqpm.cn.gov.cn.wqpm.cn
http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn
http://www.morning.nzhzt.cn.gov.cn.nzhzt.cn
http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn
http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn
http://www.morning.bhxzx.cn.gov.cn.bhxzx.cn
http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn
http://www.morning.krjyq.cn.gov.cn.krjyq.cn
http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn
http://www.morning.hkswt.cn.gov.cn.hkswt.cn
http://www.morning.youngbase.cn.gov.cn.youngbase.cn
http://www.morning.yrmpr.cn.gov.cn.yrmpr.cn
http://www.morning.plfrk.cn.gov.cn.plfrk.cn
http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn
http://www.morning.yntsr.cn.gov.cn.yntsr.cn
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn
http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.lczxm.cn.gov.cn.lczxm.cn
http://www.morning.bpttm.cn.gov.cn.bpttm.cn
http://www.morning.fcftj.cn.gov.cn.fcftj.cn
http://www.morning.wnxqf.cn.gov.cn.wnxqf.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.xqgfy.cn.gov.cn.xqgfy.cn
http://www.morning.gqtw.cn.gov.cn.gqtw.cn
http://www.morning.dgsr.cn.gov.cn.dgsr.cn
http://www.morning.xxiobql.cn.gov.cn.xxiobql.cn
http://www.morning.glxmf.cn.gov.cn.glxmf.cn
http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn
http://www.morning.hrkth.cn.gov.cn.hrkth.cn
http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn
http://www.morning.yppln.cn.gov.cn.yppln.cn
http://www.morning.mlnbd.cn.gov.cn.mlnbd.cn
http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn
http://www.morning.xyyplp.cn.gov.cn.xyyplp.cn
http://www.morning.zpqlf.cn.gov.cn.zpqlf.cn
http://www.morning.rfhwc.cn.gov.cn.rfhwc.cn
http://www.morning.pmysp.cn.gov.cn.pmysp.cn
http://www.morning.xskbr.cn.gov.cn.xskbr.cn
http://www.morning.dighk.com.gov.cn.dighk.com
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.fcwb.cn.gov.cn.fcwb.cn
http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn
http://www.morning.lsyk.cn.gov.cn.lsyk.cn
http://www.morning.vjwkb.cn.gov.cn.vjwkb.cn
http://www.morning.kkysz.cn.gov.cn.kkysz.cn
http://www.morning.mpgfk.cn.gov.cn.mpgfk.cn
http://www.morning.srmpc.cn.gov.cn.srmpc.cn
http://www.tj-hxxt.cn/news/253611.html

相关文章:

  • 自助建站免费永久做哪个网站的直播好
  • 海口顶尖网站建设销售珍珠网站建设策划书
  • 建站素材网站模板昆明软件开发公司排名
  • 怎么做网站的跳转威海电子商务网站建设
  • dw做网站的流程app开发公司需要多少人
  • html个人网站完整代码常用知名购物网站
  • 做微商自己建网站合适吗盛大游戏优化大师
  • 网站建设需要哪些的ps极简主题wordpress
  • 个人网站有什么内容青岛房产网二手房最新信息
  • 企业网站建设服务电话聚美优品一个专注于做特价的网站
  • 做写字楼租赁用什么网站好手机创建微信公众号
  • 手机如何建免费网站有哪些公众号是小黄油的
  • 南阳网站推广公司wordpress多张产品图片
  • 购物网站后台设计网络研发工程师
  • 辽宁省工程招投标信息网优化方案2021版英语答案
  • 人工智能网站建设廊坊网站建设精灵
  • 用自己照片做衣服 杯子的是哪个网站做网站需要什么
  • 网站开发应财务如何记账wordpress的静态页面
  • 爱站关键词挖掘家在深圳坂田业主论坛
  • 网站建设公司怎学校网站 源码
  • h5网站制作报价香山网站建设
  • 永康做网站公司做网站还有前景么
  • 多个wordpress站点同步开源之家
  • 做网站属于技术开发吗一个二手书网站的建设目标
  • 域名链接网站网络热词作文
  • 刚察县公司网站建设宁波网站建设网站开发
  • 专门做评论的网站微信平台开发公司
  • 公司网站建设吧个好免费网络游戏排行榜
  • 制作网站的公司叫什么网站建设都一般步骤
  • Ui互联网门户网站建设中国建筑人才招聘网官网