首页 > 其他分享 >OpenCV使用RTMP流

OpenCV使用RTMP流

时间:2024-09-05 09:04:53浏览次数:13  
标签:service start cv2 OpenCV live rtmp 使用 import RTMP

使用RTMP流之前使用nginx进行推流

sudo apt-get install nginx libnginx-mod-rtmp

配置文件中添加以下内容:

rtmp { 
   server { 
      listen 1935;
      chunk_size 4096;
      application live { 
           live on;
           record off;
      }
   }
}

Linux下安装v4l查看摄像头名称:

sudo apt-get install v4l-utils
dog:~$ v4l2-ctl --list-devices
C922 Pro Stream Webcam (usb-0000:02:00.0-3):
	/dev/video0
	/dev/video1
	/dev/media0

相应Python代码:

#encoding:utf-8
import cv2
import time
import threading
import subprocess

def start_rtmp_service():
    cmd = "ffmpeg -f v4l2 -framerate 30 -video_size 1280x720 -i /dev/video0 -c:v libx264 -preset veryfast -maxrate 1000k -bufsize 2000k -pix_fmt yuv420p -g 50 -f flv rtmp://127.0.0.1/live"
    p = subprocess.Popen(cmd,shell=True)
    p.communicate()

def start_video_service():
    url = "rtmp://127.0.0.1/live"
    cap = cv2.VideoCapture(url)
    while 1:
        if cap.isOpened():
            ret,frame = cap.read()
            cv2.imshow("win",frame)
            key = cv2.waitKey(1)
            if (key & 0xFF == ord("q")):
                break
    cap.release()
    cv2.destroyAllWindows()

t1 = threading.Thread(target=start_video_service)
t1.start()
time.sleep(2)
t2 = threading.Thread(target=start_rtmp_service)
t2.start()

参考文章:

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

标签:service,start,cv2,OpenCV,live,rtmp,使用,import,RTMP
From: https://www.cnblogs.com/commuter/p/18397669

相关文章

  • MySQL——事务与存储过程(二)存储过程的创建(5)流程控制的使用
        在编写存储过程时还有一个非常重要的部分——流程控制。流程控制语句用于将多个SQL语句划分或组合成符合业务逻辑的代码块。MySQL中的流程控制语句包括:IF语句、CASE语句LOOP语句、WHILE语句、LEAVE语句、ITERATE语句、REPEAT语句和WHILE语句。     ......
  • 服务器 Debian 安装初使用一些设定记录
    通常拿到服务器root和密码后,我们进行一些安全首选项必备,开启BBR,注意Debian12默认支持BBR,只需要开启即可需要服务器内核支持uname-r//内核版本高于4.9就行。安装#一键开启echo-e"\nnet.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr">>......
  • Docker部署SVN服务器并使用:从基础到高级
    目录引言Docker部署SVN服务器SVN基础使用SVN高级使用最佳实践和注意事项结语1.引言Subversion(SVN)是一个开源的版本控制系统,广泛用于管理和追踪软件项目的源代码。本文将详细介绍如何使用Docker快速部署SVN服务器,以及SVN的基础和高级使用方法。无论你是SVN......
  • 解决在.net8 WebAPI中 AOP 使用AbstractInterceptorAttribute
    在网上找了许多例子但是放在.net8就不好使了比如在Program中配置IInterceptor或者 services.ConfigureDynamicProxy,网上说的对但是也不全对//通过单元测试(MSTest)//创建IServiceCollectionIServiceCollectionservices=newServiceCollection(); 是能调用Abstr......
  • 学习使用双指针
    ​​......
  • 【Python使用】嘿马头条项目从到完整开发教程第8篇:缓存,多级缓存【附代码文档】
    本教程的知识点为:简介1.内容2.目标产品效果ToutiaoWeb虚拟机使用说明数据库理解ORM作用思考:使用ORM的方式选择数据库SQLAlchemy操作1新增2查询all()数据库分布式ID1方案选择2头条使用雪花算法(代码toutiao-backend/common/utils/snowflake)数据库Red......
  • 《OpenCV计算机视觉》—— 图像轮廓检测与绘制
    文章目录一、轮廓的检测二、轮廓的绘制图像轮廓检测与绘制的代码实现三、轮廓的近似一、轮廓的检测轮廓检测是指在包含目标和背景的数字图像中,忽略背景和目标内部的纹理以及噪声干扰的影响,采用一定的技术和方法来实现目标轮廓提取的过程注意:做轮廓检测前需要将图片......
  • 《OpenCV计算机视觉》—— 模板匹配
    文章目录一、模板匹配简单介绍二、三个主要函数的介绍1.执行模板匹配函数-cv2.matchTemplate()2.查找最佳匹配函数-cv2.minMaxLoc()3.在原图上绘制匹配区域函数-cv2.rectangle()三、代码实现一、模板匹配简单介绍在Python中,模板匹配是一种在图像中查找与给定模板最......
  • RabbitMQ使用说明
    一、前言本文基于作者对RabbitMQ使用的经验积累进行阶段性总结,希望没有使用经验的开发人员,看完本文可以直接上手。1、RabbitMQ核心概念Server:又称Broker,rabbitmq-server,一般指服务器运行的服务。Connection:是客户端与RabbitMQ服务器之间的通信通道,用于发送和接收消息。C......
  • ansible使用docker模块构建镜像
    目录Docker的Ansible自动化应用解决国内无法下载镜像问题Dockerfile文件构建镜像运行容器使用Ansible创建和管理容器Docker的Ansible自动化应用解决国内无法下载镜像问题国内的服务器无法正常下载仓库的镜像了,只能到其他地区下载,再推送到阿里的镜像,再下载原来阿里的镜像构......