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

浏览器端直播推流实现——系统篇

        浏览器端用vue3.5.12写,服务器端用php8.2+swoole5.1.4+thinkphp8写,流媒体服务器使用nginx-rtmp模块,拉流App端用uniapp(其他端各自实现吧,这里以App端为例)

        操作系统基于opencloudos8,还用到了ffmpeg,该安装就安装,这里不啰嗦安装步骤

        以下是vue的代码,比较简陋,各自整理

<template>
  <div>
    <video ref="videoElement" autoplay></video>
  </div>
  <div>
      <button @click="startMediaStream">开始获取媒体流</button>
    </div>
</template>
 
<script setup>
import { ref, onMounted, onUnmounted  } from 'vue';
 
const videoElement = ref(null);
const ws = ref(null);
const localStream = ref(null);
 
onMounted( () => {
    ws.value = new WebSocket('ws://192.168.0.113:9502');
      ws.value.onopen = function(event) {
        console.log('WebSocket 连接已打开', event);
      };
      ws.value.onerror = function(error) {
        console.log('WebSocket 出错', error);
      };
      ws.value.onmessage = function(event) {
          console.log('收到消息', event.data);
          // 处理接收到的数据
        };
    ws.value.onclose = function(event) {
        console.log('WebSocket 连接已关闭', event);
      };
  
});

function startMediaStream() {
  navigator.mediaDevices.getUserMedia({ audio: true, video: true })
    .then(function(stream) {
      localStream.value = stream;
            // 将音视频流发送到服务器(通过WebSocket)
            startSendingStream();
            
            if ("srcObject" in videoElement.value) {
              videoElement.value.srcObject = stream;
        

http://www.lryc.cn/news/480407.html

相关文章:

  • HDFS和HBase跨集群数据迁移 源码
  • opencv实时弯道检测
  • 计算机网络综合题
  • 【ARM Linux 系统稳定性分析入门及渐进 1.2 -- Crash 工具依赖内容】
  • 「C/C++」C++标准库 之 #include<exception> 异常处理库
  • YOLOv7-0.1部分代码阅读笔记-experimental.py
  • 【大数据学习 | kafka】简述kafka的消费者consumer
  • 系统架构设计师论文:论湖仓一体架构及其应用
  • 电磁兼容(EMC):GB 4343.1喀呖声 详解
  • 纯血鸿蒙Native层支持说明
  • learn C++ NO.31——类型转换
  • 重学 Android 自定义 View 系列(三):自定义步数进度条
  • 海南华志亿星电子商务有限公司赋能抖音商家成长
  • 数据结构-并查集专题(1)
  • 共享汽车管理新纪元:SpringBoot框架应用
  • 道可云人工智能元宇宙每日资讯|《中国生成式人工智能应用与实践展望》白皮书发布
  • kaggle学习 eloData项目(1)-数据校验
  • ORACLE RAC用DNS服务器的配置
  • vue3 + vite 实现版本更新检查(检测到版本更新时提醒用户刷新页面)
  • 【CSP】爆零的独特姿势
  • Git仓库
  • 【科研日常】论文投稿的几大状态
  • SSLHandshakeException错误解决方案
  • python数据结构基础(7)
  • 【系统集成项目管理工程师】英语词汇对照表-项目管理类
  • 购物车-多元素组合动画css
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(3)
  • [ vulnhub靶机通关篇 ] 渗透测试综合靶场 DarkHole:1 通关详解 (附靶机搭建教程)
  • 【LeetCode】移除链表中等于设定值的元素、反转链表
  • Redis - 主从复制