实时摄像头流传输(直播)
主要是给自己这两周折腾的东西收尾一下,踩了很多坑,比如用ffmpeg推流、自己配置nginx-rtmp环境等,没必要而且很容易出错。
前提知识
需要学习docker的简单使用,b站狂神,质量非常高。(别看写的java,我是python主语言的,也可以看)【狂神说Java】Docker进阶篇超详细版教程通俗易懂_哔哩哔哩_bilibili
需要学习网络相关的知识。比如ip地址的类型。
我们要做的事情分成两部分,推流和拉流。
推流
推流又分成两部分,一个是构建一个代理端口并配置一下,我主要是参考了
Docker简易搭建个人直播流rtmp服务器总结_二少爷的博客的博客-CSDN博客_docker搭建直播服务器
docker 搭建nginx-rtmp_司马懿的西山居-CSDN博客_docker nginx rtmp
两篇推文。注意需要配置好文件才能,可以参考第二篇推文里给的那个配置文件(因为我没花时间学nginx,不太看懂的)
sudo docker run -d --name rtmp -p 1935:1935 -p 8080:8080 -v ~/Documents/nginx-1.19.2/conf/nginx.conf:/etc/nginx/nginx.conf alqutami/rtmp-hls
以上需要安装在你的服务器上!!!!
完成以上步骤后,rtmp://你的服务器ip地址:1935/live/,就是我们要推流的地址了
另一个是把流推送到推流地址
在你设备端(比如电脑的前置摄像头、usb摄像头)所在的电脑,安装obs。(ffmpeg推流学习成本太高了)。如果是ip摄像头,好像是可以直接推流,只需要处理拉流的问题。
obs设置画面和声音非常方便,点点点就行了
唯一的问题是,要注意设置里,填写上面我们得到的推流地址(这步可能会卡在防火墙之类的问题上,要检查一下配置问题)。串流密钥,随便填写就行了,也可以不填。192是局域网,只有局域网内的设备可以拉流,如果想在公网拉就要127之前的ip地址。
然后点击开始推流,推流的步骤就好了。
拉流
拉流因为我的需求要放到服务器上跑一个实时深度学习项目,我还没有完全搞定
目前试了一下python的cv2。大家参考一下就好。
import cv2
import timedef test():'''调用摄像头,捕捉图像'''url = 'rtmp://192.168.3.120:1935/live'cap = cv2.VideoCapture(url)#读取摄像头,0表示系统默认摄像头
# cap = cv2.VideoCapture(0)while True:#读取图像ret,photo=cap.read()#将图像传送至窗口cv2.imshow('Please Take Your Photo!!',photo)#设置等待时间,若数字为0则图像定格key=cv2.waitKey(0.1)#按空格获取图像if key==ord(" "):#以当前时间存储filename = time.strftime('%Y%m%d-%H%M%S') + ".jpg"#保存位置cv2.imwrite(filename,photo)#按“q”退出程序if key==ord("q"):cap.release()breakpasstest()
实时摄像头流传输(直播)相关推荐
- 根据海康威视摄像头个数合成不同的摄像头画面的实时摄像头流
随着技术的不断发展,越来越多的场景需要同时监控多个角度,而这就需要将多路摄像头的画面实时合成为一个流.根据摄像头的数量的不同,我们可以采用不同的方式来合成实时摄像头流.最近遇到一个问题,就是怎么在去是 ...
- python 通过socket通讯实现实时摄像头视频传输
话不多说,直接上代码: 这是服务端代码: import socket import cv2 import numpy as npsk = socket.socket() # sk.setsockopt ...
- TCP协议在传输实时语音流方面的优点
1. 可靠性高:TCP协议通过确认机制和重传机制保证数据的可靠性,能够保证语音数据的完整性和准确性. 2. 顺序性好:TCP协议能够保证数据的顺序性,能够确保语音数据按照发送顺序被接收. 3. 流量控 ...
- ffmpeg实现摄像头拉流_[FFmpeg] 如何通过实时摄像头帧图片生成 rtmp 直播流?
背景 已经完成用 Python 对摄像头硬件实时提取帧图像并进行一系列机械视觉处理 客户突然提出, 一定要通过 rtml:// 进行远程工作状态的监控 分析 因为硬件驱动的原因 系统中一个 usb c ...
- Android 虚拟直播,实现无人直播,使用MP4文件替换实时摄像头预览流(Camera)
抖音\微信 无人直播,用MP4文件替换实时摄像头(Camera) 使用:Xposed +android_virtual_cam 手机需要root 原生相机,预览界面替换成功 android_virtu ...
- 如何实现摄像头监控数据实时存储及传输?
我们今天接到一个需求电话,是用户打电话向我们咨询方案,具体场景是这样的:需要用户对某个场景的监控数据进行访问,也就是监控摄像头拍摄到的,外网用户在我们的网站上都能看到,难点是怎么把摄像头监控的数据进行 ...
- 互联网协议 — RTSP 实时流传输协议
目录 文章目录 目录 RTSP Linux RTSP Server Android RTSP Client RTSP RTSP(Real Time Streaming Protocol,实时流传输协议 ...
- C语言libcurl:RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议
RTSP是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetworks公司提交的IETF RFC标准. /** Copyright (c) 2011 - 2019, Jim ...
- 实时流(直播流)播放、上墙(大屏播放)解决方案
实时流(直播流)播放.上墙(大屏播放)解决方案 参考文章: (1)实时流(直播流)播放.上墙(大屏播放)解决方案 (2)https://www.cnblogs.com/xiaozhi_5638/p/8 ...
最新文章
- 009_Gson版本支持
- openssl 安装好了 php如何打开,开启openssl
- 一位软件实施工程师的自述
- php图片变成代码怎么解决,一段图片处理代码PHP代码转C#代码,该怎么解决
- ML的BD框架-Hadoop.Mahout.Strom.Spark/GraphLab
- JSP内置对象之WEB安全性及config对象
- 最IN的云原生架构,阿里云 Serverless 事件总线 EventBridge 重磅发布
- 初学 Delphi 嵌入汇编[29] - 寄存器所能接受的数值范围
- foxmail邮件怎样打印日历
- 【Python】function、module、Package及import导入方法
- windows installer 3.2搞定
- Mybatis plus 整合springboot 出现的Invalid bound statement (not found)问题
- DeepLearningAI 学习笔记 1.2 logistic 回归
- 什么是互联网保险平台?
- 如何将zlib,gzip和zip相关联?它们有什么共同之处,它们有何不同?
- Flink 大规模作业调度性能优化
- 爬kuku漫画网站的小爬虫
- 潘多拉固件设置ipv6_k2p下潘多拉/openwrt配置ipv6地址
- 抽奖h5小游戏还能这么玩?h5抽奖游戏种类详解
- 这些免费、可商用的图片素材网站,绝对不能错过