当前位置:网站首页>实现离线文件推流成rtsp 2
实现离线文件推流成rtsp 2
2022-07-31 05:17:00 【'番茄炒蛋饭'】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
实现离线文件推流成rtsp
1.安装ffmpeg
省略 前面写过
安装ffmpeg
2.进行搭建 rtsp 服务器
地址在自己的百度云 /脚本/rtsp服务脚本
1
解压 rtsp-simple-server_v0.17.17_linux_amd64.tar.gz
2 启动 rtsp 服务
执行 ./rtsp-simple-server
3.执行ffmpeg命令
# 将 本地front1.mp4 文件 推流成 本地服务 rtsp
ffmpeg -re -stream_loop -1 -i 20211102104550/front1.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream2
4.启动脚本加载rtsp流
import cv2
import time
from queue import Queue
from threading import Thread
class VideoManager:
def __init__(self, videoPath, cam_type="none", rotate_type=False):
self.cap = cv2.VideoCapture(videoPath)
self.videoPath = videoPath
self.seq_length = 16
self.skip_num = 1
self.frame_buffer = Queue()
self.frame_idx = 0
self.cam_type = cam_type
self.rotate_type = rotate_type
def __iter__(self):
return self
def reset(self):
self.cap.release()
self.cap = cv2.VideoCapture(self.videoPath)
while not self.frame_buffer.empty():
self.frame_buffer.get()
return self.cap.isOpened()
def release(self):
self.cap.release()
def __next__(self):
was_read = True
frames = []
idx = 0
while was_read and len(frames) < self.seq_length:
was_read, frame = self.cap.read()
idx += 1
# 用于抽帧
if (idx - 1) % self.skip_num != 0:
continue
if self.rotate_type and self.cam_type == "top":
frame = frame[::-1, ::-1, :].copy()
# time.sleep(2e-2)
frames.append(frame)
if was_read:
self.frame_buffer.put(frame)
if self.frame_buffer.qsize() > self.seq_length:
self.frame_buffer.get()
if len(frames) > 0 and len(frames) < self.seq_length:
frames.clear()
while not (self.frame_buffer.empty()):
frames.append(self.frame_buffer.get())
was_read = True
if len(frames) == 0:
was_read = False
self.frame_idx += 1
return was_read, frames, self.frame_idx
def start(self):
return self
def videoReadMp4(cap_manager, videoFrameQueue): # 用MP4视频
ret = True
while ret:
# if videoFrameQueue.full():
# time.sleep(1e-3)
# continue
ret, frame, frame_id = next(cap_manager)
if not frame:
continue
frame = cv2.resize(frame[0], (960,540))
cv2.imshow('', frame)
cv2.waitKey(1)
# if ret:
# videoFrameQueue.put(frame)
else:
cap_manager.release()
# logger.info('视频检测完成')
print('检测完成')
# self.timeout_queue.put(self.flag)
# self.detectEnd()
if __name__ == '__main__':
# rtsp = r"C:\Users\caibaojun\Desktop\lldvideo\merge\new.mp4"
# rtsp = r"C:\Users\caibaojun\Desktop\lldvideo\merge\new3.avi"
rtsp = "rtsp://192.168.5.18:8554/mystream2"
videoFrameQueue = Queue()
cap_manager = VideoManager(rtsp, cam_type="front", rotate_type=False)
t = Thread(target=videoReadMp4, args=(cap_manager, videoFrameQueue))
t.start()
边栏推荐
- Pytorch每日一练——预测泰坦尼克号船上的生存乘客
- box-shadow相关属性
- 计算图像数据集均值和方差
- wangeditor编辑器内容传至后台服务器存储
- Pytorch study notes 7 - processing input of multi-dimensional features
- Tensorflow相关list
- Fluorescein-PEG-DSPE Phospholipid-Polyethylene Glycol-Fluorescein Fluorescent Phospholipid PEG Derivatives
- 词向量——demo
- opencv之访问图像像素的三种方法
- When solving background-size:cover, the picture is covered but not displayed completely?
猜你喜欢

Detailed explanation of mysql transaction principle

Pytorch学习笔记7——处理多维特征的输入

MySQL 入门:Case 语句很好用

2021年软件测试面试题大全

【Rhapsody学习笔记】3:Dishwasher

Learning and understanding of ROS service programming

PyTorch Study Notes 08 - Loading Datasets

Attention based ASR(LAS)

CAS: 1403744-37-5 DSPE-PEG-FA Phospholipid-Polyethylene Glycol-Folic Acid for Scientific Research

DingTalk Enterprise Internal-H5 Micro Application Development
随机推荐
关于Iframe
Tensorflow相关list
ImportError: cannot import name ‘Xxxx‘ from partially initialized module ‘xx.xx.xx‘
IDEA概述和安装及调试
学习JDBC之获取数据库连接的方式
钉钉H5微应用免登鉴权
unicloud cloud development record
cv2.resize()是反的
Numpy常用函数
Research reagents Cholesterol-PEG-Maleimide, CLS-PEG-MAL, Cholesterol-PEG-Maleimide
Attention based ASR(LAS)
Chemical Reagent Phospholipid-Polyethylene Glycol-Amino, DSPE-PEG-amine, CAS: 474922-26-4
CAS:1403744-37-5 DSPE-PEG-FA 科研实验用磷脂-聚乙二醇-叶酸
cocos2d-x implements cross-platform directory traversal
Embedding前沿了解
About iframe
Podspec verification dependency error problem pod lib lint , need to specify the source
Introduction to CLS-PEG-FITC Fluorescein-PEG-CLS Cholesterol-PEG-Fluorescein
Cholesterol-PEG-Amine CLS-PEG-NH2 胆固醇-聚乙二醇-氨基科研用
Jupyter内核正忙、内核挂掉