nginx

如何把设备实时推送过来的帧图片流转成直播流进行直播?【hls】【帧图片】【直播】【udp】

偶尔善良 提交于 2020-12-28 22:39:49
如何把设备实时推送过来的帧图片流转成直播流进行直播? 非互动直播流(帧图片转直播流) 背景: 因种种原因,android设备仅做到了通过udp把摄像头帧图片实时推送到了服务器。 业务要求在手机h5,或pc电脑浏览器上都能观看实时直播(仅画面)。 实现思虑: 1、参考https://blog.csdn.net/redfoxtao/article/details/78080924 可以把图片生成rtmp直播流。使用了FrameRecorder 2、参考https://blog.csdn.net/ldddd_/article/details/105855414 使用DatagramSocket启动udp端口监听接收图片报文。 3、将图片报文替换第一步中的固定图片(BufferedImage)。 4、安装部署windows版的nginx-rtmp服务器 直接从https://github.com/illuspas/nginx-rtmp-win32/tree/dev 下载的配置好rtmp的完整nginx服务包。 5、下载ffmpeg验证nginx-rtmp服务是否正常。 ffmpeg下载地址:https://github.com/BtbN/FFmpeg-Builds/releases 我下载的ffmpeg-N-100471-gbff6fbead8-win64-gpl.zip 这个版本。

nginx 代理本地的html

一曲冷凌霜 提交于 2020-12-28 19:32:17
编辑nginx.conf Java代码 server { listen 80 ; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; ## 指向nginx 安装目录下的html文件夹,看具体配置 index noindex.htm; autoindex on; } location /www/ { root /home/admin/; ##会指向/home/admin/www autoindex on; ##会自动显示资源目录 index noindex.htm; } 通过浏览器范围 localhost/www/index.htm, 访问时出现403。 Nginx的error.log 报以下错误: *2658 open() “/xxx/xxxx(dir path)” failed (13: Permission denied) 确定为权限问题,在nginx.conf 中增加用户配置 Java代码 user admin users; 查看work process的所属用户 Html代码 [admin@wuzhongarch ~]$ ps -ef | grep nginx root 12195 1 0 15:06 ? 00:00:00

前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx)

£可爱£侵袭症+ 提交于 2020-12-28 18:49:25
前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx) 参考文章: (1)前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx) (2)https://www.cnblogs.com/riwang/p/11883332.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4864029

记一次 TCP 全队列溢出问题排查过程

半腔热情 提交于 2020-12-28 16:01:35
1. 前言 本文排查的问题是经典的TCP队列溢出问题,因TCP队列问题在操作系统层面没有明显的指标异常,容易被忽略,故把排查过程分享给大家。 2. 问题描述 A服务调用B服务接口超时,B服务主机IOWAIT高,具体超时情况分为两种: A服务的请求在B服务日志中可查到,但B服务的响应时间超过了A服务的等待超时时间3S。 A服务的请求在B服务日志中无法查到。 3. 问题分析 此种超时请求集中在很短的一段时间(通常在2分钟之内),过后便恢复正常,所以很难抓到问题现场分析原因,只能搭建测试环境,A服务持续请求B服务,在B服务主机上通过DD命令写入大量数据造成主机IOWAIT高,同时通过TCPDUMP在两端抓包分析。 部分服务超时日志: 服务A:Get http:// xxx &id=593930: net/http: request canceled (Client.Timeout exceeded while awaiting headers) 服务B: "GET xxx&id=593930 HTTP/1.1" 200 64 "-" "Go-http-client/1.1" "-" "-" 165000(单位微秒) 服务A发起请求3S后没有收到服务B响应,断开连接,服务B日志显示处理时长为0.165S,远低于3S,服务A侧看服务B的响应时间为网络传输时间

Nginx 跨域代理

╄→尐↘猪︶ㄣ 提交于 2020-12-28 02:59:32
安装环境: win10 nginx-1.17.2 安装: 在写前端调用后台接口时,报了跨域的错误。 调试地址: http://localhost:5500/demo/encAjax.html 接口地址: http://10.19.151.196:8070/A/B/C?ID=0 利用nginx配置跨域的原理是,将调试地址和接口地址映射成同源地址即可。 上述两个地址经代理后变成: http://localhost:8088/demo/encAjax.html 访问 http://localhost:8088/apis/A/B/C?ID=0 (其中apis节点为设置的标识,后面介绍) 步骤: 一、打开nginx.conf 路径:\nginx-1.17.2\conf\nginx.conf 二、编辑 这里为nginx配置监听端口为8088(因为本机端口占用的问题需要改一下) 此时,在浏览器中输入http://localhost:8088,看到的是nginx的欢迎页面 三、跨域代理设置 修改nginx.conf文件,加上跨域头,代理调试地址,接口地址。 这里为接口地址上加上apis标识,目的是方便读取并过滤有/apis/节点的地址 改完后,保存并启动 四、验证 浏览器输入以下地址进行验证 http://localhost:8088/demo/encAjax.html http:/

nginx解决跨域

风格不统一 提交于 2020-12-28 02:59:17
Nginx 解决API跨域问题 利用Nginx可以最简单且高效解决跨域问题。 跨域是前后端分离开发中非常常见的问题。这个问题网上已经有非常多的答案,但大部分是编程框架里面添加CORS头。但无论用什么Web框架,现已很难离开 Nginx 。因此直接在 Nginx 中处理跨域问题有得天独厚的优势,可以将 OPTIONS 请求拦截在API服务之前,节约服务器开销。 简单说,跨域分为 简单跨域 和 复杂跨域 。 简单跨域 不会发送 OPTIONS 请求。 复杂跨域 会发送一个预检查 OPTIONS 请求。 复杂跨域 的条件是: 非GET、HEAD、POST请求。 POST请求的 Content-Type 不是 application/x-www-form-urlencoded , multipart/form-data , 或 text/plain 。 添加了自定义header,例如 Token 。 跨域请求浏览器会在Headers中添加 Origin ,通常情况下不允许用户修改其值。 配置示例 server { listen 80; server_name _; charset utf- 8; location / { if ( $http_origin ~ '^http(s)?://(localhost|www\.你的域名\.com)$') { add_header 'Access

Nginx 配置文件修改跨域:

杀马特。学长 韩版系。学妹 提交于 2020-12-28 01:36:44
Nginx 配置文件修改跨域: 复制代码 location /record { add_header Cache-Control no-cache; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; add_header 'Access-Control-Allow-Headers' 'Range'; types{ application/dash+xml mpd; application/vnd.apple.mpegurl m3u8; video/mp2t ts; } alias /home/tinywan/video_recordings; } 来源: oschina 链接: https://my.oschina.net/qinghuo111/blog/4857488

海康威视使用FFmpeg+Nginx-rmtp进行按需推流(web端播放)

懵懂的女人 提交于 2020-12-28 01:21:09
海康威视使用FFmpeg+Nginx-rmtp进行按需推流 1.简介 很多朋友不太理解海康威视的官方sdk的使用方法博主也是,因为官方提供的是C/S版的,提供的web开发包,对浏览器的兼容性也是极差,还有一种办法是使用ffmpeg进行视频推流, 但是缺陷也是比较明显的,同时推三到四个流出来的视频也是相当卡顿对服务器资源消耗极大 所以博主另辟稀路,可不可以进行按需推流(傻瓜式监控视频对接) (点击视频先关流再推流做到按需播放)呢? 主要思路: 利用FFmpeg推流软件进行视频RTSP转RTMP流 再利用video-player播放rtmp流, 点击播放时,判断ffmpeg进程是否存在,存在则获取进程的pid号 利用进程号关闭进程以达到关流的的效果 RTSP格式详见 https://blog.csdn.net/zhouyongku/article/details/45073443?ops_request_misc=%25257B FFmpeg推流命令 ffmpeg - i "rtsp://USERNAME:PASSWORD@IP:PROT/Streaming/Channels/<通道ID>" - b 4096k - f flv - r 25 - s 1920x1080 - an "rtmp: / / 127 . 0 . 0 . 1:1935 / live / 自定义名称 JAVA

2020技能大赛改革赛云计算赛项 先电2.4 paas 容器部分记录

六眼飞鱼酱① 提交于 2020-12-28 01:20:05
1.部分 (1) 任务1 Docker CE及私有仓库安装任务(5分) 1.在master、node1、node2、cicd-node各节点中分别安装DockerCE和docker-compose。(1分) 懒得写 2.在cicd-node节点安装Registry私有仓库,导入/opt/containerk8s/docker/images目录下所有镜像,并推送到Registry私有仓库。 懒得写 3.在node1节点上从仓库中拉取mysql:latest和wordpress:latest镜像,创建/root/wproject/docker-compse.yaml文件,编排部署wordpress,并设置 restart策略。 version: '2' services: mysql: image: mysql:5.6 expose: - "3306" restart: always environment: - MYSQL_ROOT_PASSWORD=123456 wordpress: image: wordpress:latest ports: - "82:80" restart: always environment: - WORDPRESS_DB_HOST=mysql - WORDPRESS_DB_USER=root - WORDPRESS_DB_PASSWORD=123456

Redis~分布式事务和分布式事务锁

≡放荡痞女 提交于 2020-12-28 01:17:20
文章目录 前话 讲分布式事务锁前的几个概念 Redis分布式事务锁原理 核心思想 问题一 问题一 问题三 前话 大家都知道redis是一个可以高速运行在缓存级别的数据库, 他的高速原因主要有几个原因 绝大部分请求是纯粹的内存操作(非常快速),避免了与硬盘的接触 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除 使用大量的hash思想的k v键值对, 获取效率为O(1) 依靠非阻塞的IO多路复用原则,使redis形成单线程去执行命令的服务器, 避免了不必要的阻塞和上下文切换和竞争条件 redis采用IO复用实现单线程的方式, 将命令任务分装在队列中让一个线程去串行化执行, 自然避免了线程安全问题, 这也是为什么我们常说redis是基于原子操作的原因 跟多线程相比较,线程切换需要切换到内核进行线程切换,需要消耗时间和资源.而I/O多路复用不需要切换线/进程,效率相对较高,特别是对高并发的应用nginx就是用I/O多路复用,故而性能极佳 但是还有一个问题, 上面说redis是单线程的, 那么就不会有线程安全问题, 那为什么还有让redis支持事务, 还要 要求他使用redis分布式事务锁 没错,大家所熟知的 Redis 确实是单线程模型, 指的是执行 Redis 命令的核心模块是单线程的 ,而不是整个 Redis 实例就一个线程, Redis