解决video标签播放m3u8格式视频失败问题

2023-10-27

前言

什么是m3u8?

效果

  1. 效果地址
    m3u8视频切换
  2. 效果图片
    效果图片

解决方法

采用video.js插件!

引入


  1. 引入videoJS插件样式文件;
  2. 引入videoJS插件JS文件;
  3. 引入videoJS插件播放m3u8格式视频的HLS功能。

<link href="./video-js.css" rel="stylesheet">
<script src="./video.js"></script>
<script src="./videojs-contrib-hls.min.js"></script>

HTML代码

<button onclick="changeVideo('http://hls.open.ys7.com/openlive/84b99bd79f85495f84965022a7a345fc.m3u8')">视频一</button>
<button onclick="changeVideo('http://alhlsgw.lechange.com:9001/LCO/3H06397PAF00873/0/1/20180514185906/dev_20180514185906_sft2z5tlrz957s0t.m3u8')">视频二</button>
<div id="videobox">
    <video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="300" height="250">
        <source id="source" src="http://hls.open.ys7.com/openlive/84b99bd79f85495f84965022a7a345fc.m3u8" type="application/x-mpegURL">
    </video>
</div>

JS代码

// videojs 简单使用
videojs('myVideo', {
    bigPlayButton: true,
    textTrackDisplay: false,
    posterImage: false,
    errorDisplay: false
})
function changeVideo(url){
    var player = videojs('myVideo');
    player.pause();
    player.dispose();
    document.getElementById('videobox').innerHTML = '';
    var str2 = `<video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="300" height="250">
        <source id="source" src="${url}" type="application/x-mpegURL">
    </video>`;
    document.getElementById('videobox').innerHTML = str2;

    videojs('myVideo', {
        bigPlayButton: true,
        textTrackDisplay: false,
        posterImage: false,
        errorDisplay: false
    },function(){
        this.play();
    })
}

注意

  1. videoJS的初始化很容易第一步实现;
  2. 由于实现videoJS的视频切换,不能等同于常规的mp4等格式视频,直接切换地址,而是需要在点击切换的时候进行销毁原来的videoJS;
  3. 重新添加一个video标签,对其赋值视频路径;
  4. 添加到页面后进行再次初始化!

其他

QQ交流群: 264303060

QQ交流群

我的博客,欢迎交流!

我的CSDN博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决video标签播放m3u8格式视频失败问题 的相关文章

  • 是否可以仅使用html5和js剪切部分视频并将其上传到服务器

    我使用 Filereader 读取本地视频文件 mp4 因此我可以将其显示在视频标签中 我需要剪切 mp4 文件的一部分 即从 5 到 10 秒 并将其上传到服务器上 我当前的解决方案 我使用 from 和 to 参数将整个视频文件上传到服
  • 如何使视频资源兼容视网膜显示?

    我有一个应用程序 可以在播放 2 秒的电影时加载 目前 该应用程序已在商店上架 并且除此视频外 所有静态内容均符合视网膜显示标准 我有一个用于视网膜显示屏的 960x640 mp4 h 264 编码视频 它在 iPhone 是的 高分辨率
  • 如何调试视频解码损坏?

    我刚刚开始为一家新公司工作 我的新角色要求我帮助调试他们通过解码帧接收到的视频损坏 尽管我打算深入研究代码并研究问题的具体细节 但它让我开始思考视频调试的总体情况 由于处理视频对我来说非常陌生 整个过程看起来相当复杂 而且似乎有很多地方可以
  • 使用 ffmpeg 转换真实媒体

    我有许多旧的硬壳真实媒体文件需要转换 并希望编写一个脚本来批量处理它们 我可以使用 FFMpegX 进行 Real Media gt AVI 转换 但是当我尝试使用 ffmpeg 复制转换时 它总是会出现如下错误 avi 0x10084fa
  • 如何在 iOS 和 macOS 上的 Safari 中使用网络摄像头录制视频?

    我已经发布了几条路径 1 录制视频https caniuse com feat html media capture https caniuse com feat html media capture但它仅适用于 iOS 并且无法自定义 我
  • 为视频添加水印的命令

    我尝试在一个视频上添加水印 但 FFmpeg 命令不会执行 错误代码为 3037 我运行相同的代码来修剪视频 视频已成功修剪 因此没有问题inputpath or outputpath我也有ic watermark png在资产文件夹中 我
  • C# 从视频文件的一部分中提取帧

    使用 AForge ffmpeg 包装器 您可以使用 VideoFileReader 类从视频中提取帧并将其保存为位图 请参阅以下示例 提取 avi 文件的帧 https stackoverflow com questions 178256
  • 合并来自 ffmpeg 的两个视频

    我想使用 ffmpeg 将两个 mp4 视频组合成一个 mp4 视频 到目前为止我尝试过的是 ffmpeg i input1 mp4 i input2 mp4 output mp4 但是 每次我获取带有第一个输入的视频编解码器的视频而不是另
  • VideoView SeekTo 在不同设备上工作异常 - Android

    我在视频视图上使用此代码来寻求自定义位置 但它在三星设备上工作正常 但在索尼设备上 视频寻求开始位置 开始 我想让视频回到上次暂停的位置 创建视频视图 VideoView mVideoPlayer setVideoPath ViDpath
  • 如何使用 AVFoundation 组合不同方向的视频剪辑

    我正在尝试使用 AVFoundation 将多个视频剪辑合并为一个 我可以使用下面的代码使用 AVMutableComposition 创建单个视频 AVMutableComposition composition AVMutableCom
  • 如何在 Angular2 中嵌入视频?

    我想开发单页应用程序 它是一个视频门户 用户可以登录 查看视频列表 导航到单个视频 对视频进行评分 并可以执行所有媒体相关任务 例如 播放 暂停 调整音量和寻找视频位置 既然有
  • Phonegap html5视频无法播放

    我正在尝试在 iPad 上的phonegap 应用程序中播放视频 该视频给了我错误 MEDIA ERR SRC NOT SUPPORTED 我尝试播放的视频不是本地的 当我在该视频上使用curl I 时 这是它带来的信息 HTTP 1 1
  • 如何打开相机然后切换到图像模式(反之亦然)

    就我而言 我想拍照或捕捉视频 实际上 如果我创建单独的意图 我可以做到这些 我的意思是我可以将相机打开为图像模式或视频模式 但无法在它们之间切换 这与我使用的意图过滤器有关吗 我应该怎么办 我如何在它们之间切换 我有同样的问题 在我想放置一
  • 仅使用 url 嵌入视频

    给定一个 youtube url 我如何使用 net c 将视频嵌入到页面中 只需添加如下一行 将 autoplay 设置为 0 或 1 取决于您是否希望人们真正留在您的页面上
  • 使用 ffmpeg 提取帧的最快方法?

    您好 我需要使用 ffmpeg 从视频中提取帧 有没有比这更快的方法 ffmpeg i file mpg r 1 1 filename 03d jpg 如果 JPEG 编码步骤对性能要求太高 您可以始终将未压缩的帧存储为 BMP 图像 ff
  • 从内存流播放视频文件

    只是好奇看看这是否可能 我有一个 Windows 应用程序 它从我的电脑上的 avi 文件读取所有字节 然后将其存储在 byte 中 现在我的内存中有 avi 文件 我想直接从内存将其加载到某种视频播放器控件中 我尝试过使用 wmplaye
  • 如何获取优酷access_token

    我在哪里可以找到access token refresh token在我的优酷账号里 我找到了如何使用外部脚本通过 API 将视频上传到 youku com 但我需要access token refresh token使用它 您需要对优酷应
  • 如何在 WPF 中从原始帧渲染视频?

    我有一个特殊的摄像机 使用 GigEVision 协议 我使用提供的库进行控制 我可以订阅帧接收事件 然后通过 IntPtr 访问帧数据 在我的旧 WinForms 应用程序中 我可以通过从数据创建 Bitmap 对象并将其设置为 Pict
  • 需要使用 iFrame API 隐藏 YouTube 品牌

    我正在使用 YouTube iFrame API 在我的自定义播放器 javascript 播放器 中加载视频 我需要隐藏 Youtube 品牌 但是在 iOS 设备上 它显示带有以下参数的徽标 playerVars fs 1 autopl
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript

随机推荐

  • 疯壳AI语音及人脸识别教程2-3定时器

    目录 1 1寄存器 1 1 2 实验现象 18 详情地址 https fengke club GeekMart views offline ai 购买链接 https fengke club GeekMart su fKw7Nb7oC js
  • 嵌入式(有名管道和无名管道)(进程间通讯)

    进程间通信 IPC InterProcess Communication 概念 就是进程和进程之间交换信息 常用通信方式 无名管道 pipe 有名管道 fifo 信号 signal 共享内存 mmap 套接字 socket 过时的IPC通信
  • 写论文注意事项

    文献检索 搜索引擎的高级功能 搜索引擎主要www google com和scholar google com www baidu com则仅在检索中文时稍好点 英文很差 用处不大 我们常用的google侧重于网页的检索 Scholar则主要
  • Linus Torvalds接受来自微软的Linux Hyper-V升级

    导读 微软最近推送了一些变更 旨在改进即将发布的 Linux 内核 6 6 版本对 Hyper V 的支持 这些改进包括在 Hyper V 上支持 AMD SEV SNP guest 和 Intel TDX guest 除了这两项 还有其他
  • TIM_TimeBaseInitStruct 和TIM_TimeBaseStructInit

    TIM TimeBaseInit的简介 brief Initializes the TIMx Time Base Unit peripheral according to the specified parameters in the TI
  • C与C++混合编程

    一 C与C 混合编程的原理 首先 我先了解一下编译的过程 分为四步 预处理 预处理用于将所有的 include头文件以及宏定义替换成其真正的内容 编译 将经过预处理之后的程序转换成特定汇编代码 assembly code 的过程 汇编 汇编
  • libero soc 11.9 modelsim仿真

    只是记录一个仿真过程 首先建立一个工程 简单的分频程序 点击图片处新建一个testbench 定义testbench名字随意 由于用的16M时钟 所以62 5ns ok 写testbench 双击下图位置开始仿真 双击以后modelsim会
  • Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)

    默认情况下 Android和Flutter打包出来的Apk都是包含了所有架构的 这样打出来的apk体积相对于单架构的apk有点大 这时 我们就需要分别打出不同的架构包 架构 一般来说 x86代表32位CPU x64 或者叫x86 64 代表
  • 全国职业技能大赛云计算--高职组赛题卷①(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务1 Docker CE及私有仓库安装任务 5分 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Ku
  • python图像处理-形状提取和识别1(基于Hough的形状提取)

    python图像处理 形状提取和识别1 基于Hough的形状提取 本系列一个分为两大部分 一个是形状提取 一个是形状识别 1 形状提取中 基于Hough函数法进行直线提取和圆形提取 还有即基于颜色的形状提取 这里扩展了一个小程序 识别一张棋
  • vs2010复制粘贴

    void CjiantiebanDlg OnBnClickedButton1 TODO 在此添加控件通知处理程序代码 复制 CString str GetDlgItem IDC EDIT1 gt GetWindowText str HGLO
  • ubantu配置运行orb-slam2小记

    虚拟环境 参考这篇即可 sudo apt install virtualenv sudo apt install virtualenvwrapper 配置 mkdir HOME virtualenvs export WORKON HOME
  • MySQL数据库的命令行语句

    1 命令行连接数据库的方法 本地连接 必须管理员身份打开cmd窗口 win R输入cmd后 shift ctrl enter mysql u 用户名 p 用户名 CaoQian 密码 cq2227558856 2 显示所有数据库 图中是四个
  • 进制转换(二进制、八进制、十进制、十六进制之间的转换)

    进制转换 1 1 二进制与十进制之间的转换 十进制转二进制 方法为 十进制数除2取余法 即十进制数除2 余数为权位上的数 得到的商值继续除 直到商为0为止 二进制转十进制 方法为 把二进制数按权展开 相加即得十进制数 1 2 二进制与八进制
  • visibility 与 overflow

    display 3 属性描述 设置或获取对象是否及如何显示 版本变更 是 语法模板 display none inline block list item inline block table inline table table capt
  • 如何高效的进行版本管理,版本管理的方法

    如何进行高效的版本管理 版本管理的方法 云效Projects版本管理为不同的产品线 模块建立版本 对集成版本进行相关活动的管理 在Projects版本管理中规划发布内容 可以关联需求 任务 缺陷 立即体验 开启版本管理 项目管理员和项目拥有
  • 【Hyper-v 管理器虚拟机配置内网外网固定ip】

    1 Default Switch Hyper v默认虚拟网卡 无法设置固定ip Hyper V自带一个不能删除的Default Switch虚拟交换机 虚拟机使用该网络可以自动获取IP直接上网 但这个网络的网关地址每次重启后都会改变 所以你
  • 原生Servlet与Spring Controller性能比较

    在实际项目工作 有同事提出 Java原生的Servlet性能 响应速度与并发数 要比封装过的Spring Controller高 基于这点 楼主用Apache的ab工具 对两个简单的应用做1000并发压力测试 查看两者的响应速度与并发数 平
  • 元旦过后

    今天是13号了 自从元旦过后 就一直没有做什么事情 觉得好空虚啊 一心只盼望着过年放假回家 哎 感觉熬日子啊 本来就觉得日子过得好快 却还不懂得珍惜 不能这样了哈 在回家之前先做点有用的事情吧 讲一个小故事吧 一天 有一个姑娘去买红薯 本来
  • 解决video标签播放m3u8格式视频失败问题

    前言 什么是m3u8 效果 效果地址 m3u8视频切换 效果图片 解决方法 采用video js插件 引入 引入videoJS插件样式文件 引入videoJS插件JS文件 引入videoJS插件播放m3u8格式视频的HLS功能 HTML代码