IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx+Flv:外网播放内网视频流 解决方案 -> 正文阅读

[系统运维]Nginx+Flv:外网播放内网视频流 解决方案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近项目中,有遇到线上系统需要访问内网是视频资源,经过查阅资料及实践。最终实现外网播放视频流。

一、具体操作环境

	 1. 线上环境使用 阿里云 服务器
	 2. 内网环境使用 专网与外网互通
	 3. nginx 版本 1.20.1
	 4. 视频流格式:WebSocket  ws://
	 5. 前端使用 Vue

二、操作步骤

1.网络请求拓扑图

在这里插入图片描述

2.修改配置Nginx.conf


http {

    upstream live {
        server 192.168.1.22:1000;
        keepalive 64;
    }
	map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    
	server {
		location /ws_sms {
	            proxy_pass     http://live/sms;
	            proxy_set_header Host $host:$server_port;
	            proxy_http_version 1.1;
	            proxy_set_header Upgrade $http_upgrade;
	            proxy_set_header Connection "upgrade";
	    }
 	  }

    }

2.重启Nginx

nginx -s reload

3.使用 flv.js 来实现视频播放功能

  1. 首先使用cnpm 安装 flv.js
  2. 在播放页面引入 flv.js
  3. 直接上干货!!!
<template>
  <div>
    <el-dialog title="视频监控" :visible.sync="dialogVisible" width="60%" :modal="false">
      <div>
        <video id="videoElement1" name="videoElement" class="centeredVideo" controls muted autoplay width="100%" height="100%" />
      </div>
    </el-dialog>
  </div>

</template>

<script>
import flvjs from 'flv.js'

export default {
  name: 'PreviewDialog',
  components: { },
  data() {
    return {
      dialogVisible: false
    }
  },
  mounted() {
  },
  methods: {
    init(data) {
      this.dialogVisible = true
      // 将原地址替换成 Nginx反向代理的地址 
      let ws_url = data.httpUrl.replaceAll('192.168.1.22:1000/sms', window.location.host + "/ws_sms")
      this.$nextTick(() => {
        if (flvjs.isSupported()) {
          let player = null
          var videoElement = document.getElementById('videoElement1')
          player = flvjs.createPlayer({
            type: 'flv', // => 媒体类型 flv 或 mp4
            isLive: true, // => 是否为直播流
            hasAudio: false, // => 是否开启声音
            url: ws_url // => 视频流地址
          })
          player.attachMediaElement(videoElement) // => 绑DOM
          player.load()
          player.play()
        } else {
          console.log('flvjs不支持')
        }
      })
    }
  }
}
</script>

总结

通过上述步骤,即可完成外网访问内网视频资源。 按此方案可以解决类似问题。
特此记录。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:59:27  更:2022-03-24 01:00:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:27:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码