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

02-Media-6-rtsp_server.py 使用RTSP服务器流式传输H264和H265编码视频和音频的示例程序

rtsp_server.py 是使用k230的板载摄像头和WIFI联网功能,使用RTSP服务器流式传输视频和音频的程序示例。程序核心是创建了一个RtspServer类,该类用于初始化、启动、停止RTSP服务器,并进行视频和音频的流传输。

一、首先,程序导入必要的模块,包括视频编码、传感器、媒体处理等相关模块,以及时间、操作系统、线程等标准模块。

from media.vencoder import *      # 视频编码相关
from media.sensor import *        # 摄像头传感器控制
from media.media import *         # 媒体处理核心功能
import time, os                   # 系统功能
import _thread                    # 多线程支持
import multimedia as mm           # 多媒体功能
from time import *                # 时间相关功能

二、RtspServer类

初始化方法接受以下参数:会话名称、端口号、视频类型和是否启用音频。

默认情况下参数设置如下:会话名称为"test",端口为8554,视频类型为H264,不启用音频。

class RtspServer:def __init__(self,session_name="test",port=8554,video_type = mm.multi_media_type.media_h264,enable_audio=False):self.session_name = session_name # session nameself.video_type = video_type  # 视频类型264/265self.enable_audio = enable_audio # 是否启用音频self.port = port   #rtsp 端口号self.rtspserver = mm.rtsp_server() # 实例化rtsp serverself.venc_chn = VENC_CHN_ID_0 #venc通道self.start_stream = False #是否启动推流线程self.runthread_over = False #推流线程是否结束

start方法用于启动RTSP服务器。它首先初始化流(_init_stream),然后初始化RTSP服务器并设置端口,创建会话,启动RTSP服务器,启动流(_start_stream),最后启动一个线程来执行实际的流传输(_do_rtsp_stream)。

    def start(self):# 初始化推流self._init_stream()self.rtspserver.rtspserver_init(self.port)# 创建sessionself.rtspserver.rtspserver_createsession(self.session_name,self.video_type,self.enable_audio)# 启动rtsp serverself.rtspserver.rtspserver_start()self._start_stream()# 启动推流线程self.start_stream = True_thread.start_new_thread(self._do_rtsp_stream,())

stop方法用于停止RTSP服务器。它首先停止流传输线程,然后等待线程结束,接着停止流(_stop_stream),停止RTSP服务器,并释放资源。

    def stop(self):if (self.start_stream == False):return# 等待推流线程退出self.start_stream = Falsewhile not self.runthread_over:s

文章转载自:

http://zU5sfD9F.rqLzz.cn
http://HEuXd0TV.rqLzz.cn
http://zyOHlgxQ.rqLzz.cn
http://oi2kyW59.rqLzz.cn
http://ZXTQfool.rqLzz.cn
http://jWWtcmBc.rqLzz.cn
http://OY3OURr9.rqLzz.cn
http://0czHmFQx.rqLzz.cn
http://rIMUHg8R.rqLzz.cn
http://8HLTipAJ.rqLzz.cn
http://bbmcR51U.rqLzz.cn
http://99SacgTB.rqLzz.cn
http://5jt1EZGC.rqLzz.cn
http://lNe3IAx4.rqLzz.cn
http://JPTqVmkj.rqLzz.cn
http://KJaa9fF5.rqLzz.cn
http://K017aNr9.rqLzz.cn
http://v4CjZP9n.rqLzz.cn
http://6vb1a177.rqLzz.cn
http://m4rL0t94.rqLzz.cn
http://cA5DuVZ4.rqLzz.cn
http://TS28YRJM.rqLzz.cn
http://UQmeQC1R.rqLzz.cn
http://G1sATIIK.rqLzz.cn
http://b2oMSnpR.rqLzz.cn
http://EDFMNn5L.rqLzz.cn
http://7NTsVPoc.rqLzz.cn
http://IfJRHoxx.rqLzz.cn
http://qLnzE2Zz.rqLzz.cn
http://VJZOdoKS.rqLzz.cn
http://www.dtcms.com/a/370116.html

相关文章:

  • I/O 多路复用 (I/O Multiplexing)
  • Nginx性能调优:参数详解与压测对比
  • java接口和抽象类有何区别
  • C/C++动态爱心
  • YOLOv8 在 Intel Mac 上的 Anaconda 一键安装教程
  • 关于 React 19 的四种组件通信方法
  • Joplin-解决 Node.js 中 “digital envelope routines::unsupported“ 错误
  • [论文阅读] 软件工程 - 需求工程 | 2012-2019年移动应用需求工程研究趋势:需求分析成焦点,数据源却藏着大问题?
  • sensitive-word 敏感词性能提升14倍优化全过程 v0.28.0
  • 留数法分解有理分式
  • 基于FPGA的汉明码编解码器系统(论文+源码)
  • C++经典的数据结构与算法之经典算法思想:排序算法
  • 大恒-NF相机如何控制风扇
  • 01.单例模式基类模块
  • 数位DP -
  • kotlin - 2个Fragment实现左右显示,左边列表,右边详情,平板横、竖屏切换
  • 基于SpringBoot+Thymeleaf开发的实验室助理工作管理系统
  • 手写MyBatis第53弹: @Intercepts与@Signature注解的工作原理
  • 基于SpringBoot+JSP开发的潮鞋网络商城
  • docker run 命令,不接it选项,run一个centos没有显示在运行,而run一个nginx却可以呢?
  • 【C++框架#3】Etcd 安装使用
  • 洛谷 P3178 [HAOI2015] 树上操作-提高+/省选-
  • Java全栈开发工程师的面试实战:从基础到复杂场景的技术探索
  • 【Flask】测试平台开发,重构提测管理页面-第二十篇
  • ICPC 2023 Nanjing R L 题 Elevator
  • TensorFlow 面试题及详细答案 120道(101-110)-- 底层原理与扩展
  • 《sklearn机器学习——聚类性能指标》Davies-Bouldin Index (戴维斯-博尔丁指数)
  • 美团9-6:编程题
  • 深度学习--自然语言预处理--- Word2Vec
  • Nikto 漏洞扫描工具使用指南