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

本地摄像头视频流在html中打开

1.准备ffmpeg 和(rtsp-simple-server + srs搭建流媒体服务器)视频服务器.

2.解压视频流服务器修改配置文件mediamtx.yml  ,hlsAlwaysRemux: yes

3.双击运行服务器。

4,安装ffmpeg ,添加到环境变量。

5.查询本机设备列表

ffmpeg -list_devices true -f dshow -i dummy
6.查看当前摄像头的详细参数

ffmpeg -list_options true -f dshow -i video="Integrated Camera"
7.预览本机摄像头画面

ffplay -f dshow -i video="Integrated Camera"

8.将本地电脑摄像头打开将视频流传到rtmp服务器

ffmpeg -f dshow -i audio="麦克风阵列 (Synaptics Audio)" -f dshow -i video="Integrated Camera"  -vcodec libx264 -preset veryfast -maxrate 1000k -bufsize 2000k -vf "format=yuv420p" -g 50 -f flv rtmp://10.204.51.49:1935/love/stream

9.将rtmp视频流转成hls格式视频流,文件放nginx服务下

ffmpeg -i rtmp://10.204.51.49:1935/love/stream -vcodec copy -acodec copy  -f hls -hls_flags delete_segments -segment_list_size 10 -hls_list_size 5 video.m3u8

10.创建一个html页面方法在nginx服务下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HLS 播放本地视频流</title>
    <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
</head>
<body>
    <video id="video" controls></video>
    <script>
        if (Hls.isSupported()) {
            var video = document.getElementById('video');
            var hls = new Hls();
            hls.loadSource('./video.m3u8'); // 替换为你的HLS流地址
            hls.attachMedia(video);
            hls.on(Hls.Events.MANIFEST_PARSED, function() {
                video.play();
            });
        } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
            video.src = './video.m3u8'; // Safari支持HLS原生播放
            video.addEventListener('loadedmetadata', function() {
                video.play();
            });
        }
    </script>
</body>
</html>


http://www.kler.cn/a/446650.html

相关文章:

  • 基于java web在线商城购物系统源码+论文
  • C++ 面向对象编程:友元、
  • 【设计模式】空接口
  • Android详解——ConstraintLayout约束布局
  • Hexo Next主题集成百度统计
  • 深入解析MySQL Explain关键字:字段意义及调优策略
  • 【机器学习】以机器学习为翼,翱翔网络安全创新苍穹
  • 汽车IVI中控开发入门及进阶(43):NanoVG
  • 打造智慧医院挂号枢纽:SSM 与 Vue 融合的系统设计与实施
  • 【单片机原理】第1章 微机基础知识,运算器,控制器,寄存器,微机工作过程,数制转换
  • HuggingFace datasets - 下载数据
  • C语言数据库管理系统示例:文件操作、内存管理、错误处理与动态数据库设计 栈和堆的内存分配
  • [c++进阶(二)] 智能指针详细剖析--RAII思想
  • 在 .NET 5.0 运行 .NET 8.0 教程:使用 ASP.NET Core 创建 Web API
  • python 模拟法
  • 学技术学英文:SpringBoot的内置监控组件-Spring Boot Actuator
  • Android 10 Launcher3 删除谷歌搜索
  • c++中如何处理对象的创建与销毁的时机?
  • Python发送带key的kafka消息
  • TCP为什么需要三次握手和四次挥手?
  • 创新性融合丨卡尔曼滤波+目标检测 新突破!
  • C/C++语言基础--C++STL库之仿函数、函数对象、bind、function简介
  • 单元测试(C++)——gmock通用测试模版(个人总结)
  • Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
  • python实现word转html
  • AI大模型进一步推动了AI在处理图片、视频、音频、文本的等数据应用