Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用hls的时候在本地是正常的,编译放在服务器上就不显示了 #90

Open
acodercat opened this issue Sep 2, 2017 · 55 comments
Labels

Comments

@acodercat
Copy link

使用hls的时候在本地是正常的,编译放在服务器上就不显示了,求!!!!

@acodercat
Copy link
Author

今天上线的时候才发现

@surmon-china
Copy link
Owner

同学,你要给出具体的错误,和你自己的判断,否则没有办法解决。

@jiangxj2014
Copy link

jiangxj2014 commented Sep 27, 2017

default

同样编译之后在服务器上运行报错:

@acodercat
Copy link
Author

我也是这个错

@acodercat
Copy link
Author

但是在edge浏览器上可以播放

@didianV5
Copy link

遇到相同的问题,有没有解决方法?

@jerry-yo
Copy link

jerry-yo commented Nov 3, 2017

因为你们config和build 中用的是严格模式'use strict',去掉再 打包
就好了

@acodercat
Copy link
Author

真的吗

@ffdfgdfg
Copy link

ffdfgdfg commented Nov 5, 2017

我也遇到这个问题了,照着这个
https://github.com/surmon-china/vue-video-player/issues/34
在webpack配置文件module里加入 noParse: [/videojs-contrib-hls/],

@jasonzhao588
Copy link

为什么我用这个组件播放hls流媒体视频的时候总是报错,我就是按照你的示例来做的
video-player

@surmon-china
Copy link
Owner

最新版,v5.0.0 应该是可以解决这个问题的,ps: 需要删除 node_modules 重新安装。

@surmon-china
Copy link
Owner

@ffdfgdfg 是正解。

@sunxiang0918
Copy link

导入了v5.0.0 把node_modules 删除了后.还是在报错: "Cannot read property 'EventTarget' of undefined"

@surmon-china
Copy link
Owner

@sunxiang0918 videojs-contrib-hls依赖 window.videojs全局变量,想办法使其能访问,像这里:
https://github.com/surmon-china/vue-video-player/blob/master/examples/04-video.vue#L32

@sunxiang0918
Copy link

@surmon-china 搞定了,谢谢了!!

@coffin-laughter
Copy link

coffin-laughter commented Jan 11, 2018

我想问问是怎么解决的,我按照作者的 demo 代码如下:
`
import 'video.js/dist/video-js.css'

import 'vue-video-player/src/custom-theme.css'

import { videoPlayer } from 'vue-video-player'

import videojs from 'video.js'

window.videojs = videojs

// hls plugin for videojs6

require('videojs-contrib-hls/dist/videojs-contrib-hls.js')

`

但是打包编译以后 还是报错:
Uncaught ReferenceError: e is not defined

@surmon-china
Copy link
Owner

@chuanshuo-yongyuan 上面说了啊, @ffdfgdfg 的答案是正解。

@coffin-laughter
Copy link

@surmon-china 非常感谢,解决了,谢谢!!!

@surmon-china
Copy link
Owner

@JiangKunbo

在webpack配置文件module里加入 noParse: [/videojs-contrib-hls/]

这样一个简单的操作,很难实施吗

@surmon-china
Copy link
Owner

@JiangKunbo

image

@okfantasy007
Copy link

okfantasy007 commented Jun 29, 2018

开发模式下,已换成v5.0.0,还是报错:Uncaught ReferenceError: e is not defined

@yanghubin
Copy link

m3u8格式的视频,本地可以正常播放,打包发布之后就'No compatible source was found for this media.'变成这个,希望大佬解答一下,困扰几天了,感激不尽@surmon-china
image

@provish
Copy link

provish commented Aug 4, 2018

How to use noParse in nuxt.config.js ...?

@lebow01
Copy link

lebow01 commented Sep 7, 2018

videojs 7.0版本已经不需要videojs-contrib-hls 麻烦 作者更新

@acodercat
Copy link
Author

同求

@xuchangqi0810
Copy link

请问一下支持rmvb格式的视频吗?

@aspect93
Copy link

m3u8格式的视频,本地可以正常播放,打包发布之后就'No compatible source was found for this media.'变成这个,希望大佬解答一下,困扰几天了,感激不尽@surmon-china
image

请问你解决了吗??

@Trap-only
Copy link

@surmon-china @ffdfgdfg @chuanshuo-yongyuan 我在webpack处已经添加这一行,
image
打包上传至服务器发现
image

这个要怎么处理呢?麻烦大家给个解决方案谢谢

@lx812833
Copy link

请问vue-video-player动态绑定sources下的src导致不能播放视频,怎么解决?

@virtueDe
Copy link

virtueDe commented May 7, 2019

@surmon-china 您好,我也遇到上诉的问题,本地运行正常,部署到线上控制台报错: e is not defined。

在webpack也已经配置:

image

js库各版本:

    "vue-video-player": "^5.0.2",
    "vue": "^2.5.11",
    "video.js": "^7.5.4",
    "videojs-contrib-hls": "^5.15.0",

项目代码

import 'vue-video-player/src/custom-theme.css'
import videojs from 'video.js'
window.videojs = videojs
require('videojs-contrib-hls/dist/videojs-contrib-hls.js')
          <video-player class="vjs-custom-skin"
                        :options="playerOptions(item, idx)"
                        @ready="playerReadied">
          </video-player>
    playerOptions(item, idx){
      return {
        autoplay: false,
        muted: true,
        preload: 'auto',
        language: "en",
        aspectRatio: '16:9',
        sources: [{
          withCredentials: false,
          type: "application/x-mpegURL",
          src: item.url
        }],
        controlBar: {
          timeDivider: false,
          durationDisplay: false
        },
        flash: { hls: { withCredentials: false }},
        html5: { hls: { withCredentials: false }},
        poster: "https://gydev-1252687978.piccd.myqcloud.com/gy/pc-upload/20190506/768d8f3a-20cb-4e3f-bb8b-7b2ba459cc2c.png"
      }
    },

项目紧急,期待您的解答!! @surmon-china

@ffdfgdfg
Copy link

ffdfgdfg commented May 7, 2019 via email

@virtueDe
Copy link

virtueDe commented May 7, 2019

@ffdfgdfg 感谢您的回复! 我先给videojs降级来尝试解决!

@virtueDe
Copy link

virtueDe commented May 7, 2019

@ffdfgdfg
降级版本为 "video.js": "^5.18.4", ,问题没解决,请问是这个版本吗

@aspect93
Copy link

aspect93 commented May 7, 2019

@ffdfgdfg
降级版本为 "video.js": "^5.18.4", ,问题没解决,请问是这个版本吗

可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里

@virtueDe
Copy link

virtueDe commented May 7, 2019

@ffdfgdfg
降级版本为 "video.js": "^5.18.4", ,问题没解决,请问是这个版本吗

可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里

请问版本是什么版本

@aspect93
Copy link

aspect93 commented May 7, 2019

@ffdfgdfg
降级版本为 "video.js": "^5.18.4", ,问题没解决,请问是这个版本吗

可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里

请问版本是什么版本
不记得了。。你试试最新版本把

@virtueDe
Copy link

virtueDe commented May 7, 2019

@ffdfgdfg
降级版本为 "video.js": "^5.18.4", ,问题没解决,请问是这个版本吗

可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里

请问版本是什么版本
不记得了。。你试试最新版本把

@ffdfgdfg 说 videojs7已经不用videojs-contrib-hls,而是内建videojs-http-streaming;
我一开始videojs的版本就是最新的版本;

您的意思是把源码下载到本地项目里,然后在使用的时候引入吗?

@ffdfgdfg
Copy link

ffdfgdfg commented May 7, 2019 via email

@aspect93
Copy link

aspect93 commented May 7, 2019

@ffdfgdfg
降级版本为 "video.js": "^5.18.4", ,问题没解决,请问是这个版本吗

可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里

请问版本是什么版本
不记得了。。你试试最新版本把

@ffdfgdfg 说 videojs7已经不用videojs-contrib-hls,而是内建videojs-http-streaming;
我一开始videojs的版本就是最新的版本;

您的意思是把源码下载到本地项目里,然后在使用的时候引入吗?
对头,在自己项目里自己依赖videojs和hls

@virtueDe
Copy link

virtueDe commented May 8, 2019

@ffdfgdfg 谢谢您昨天的回答, 我今天上午试了6.0.1 与 6.2.1,还是不可以,请问可以加你的联系方式具体去来交流吗?后面我直接使用的video.js (版本为^7.5.4),部署到服务器上还是会报e is not defined,我在videojs提了lssues,videojs/video.js#5985

作者回复我说错误太过于笼统,请问我应该怎么具体去描述我的问题

@virtueDe
Copy link

virtueDe commented May 8, 2019

@aspect93 按照您说的,我上午直接使用videojs,部署到测试坏境还是会报错; videojs他现在的7版本已经不用videojs-contrib-hls,我是不是只要下载 video.js与video-js.min.css就行了? 可以告诉我您的联系方式吗?我这项目有点急

@aspect93
Copy link

aspect93 commented May 8, 2019

@aspect93 按照您说的,我上午直接使用videojs,部署到测试坏境还是会报错; videojs他现在的7版本已经不用videojs-contrib-hls,我是不是只要下载 video.js与video-js.min.css就行了? 可以告诉我您的联系方式吗?我这项目有点急

你qq多少

@virtueDe
Copy link

virtueDe commented May 8, 2019

@ffdfgdfg 您好!问题刚刚已经解决。我是按照@aspect93的方法 把源码下载,依赖于本地,线上显示不报错了!非常感谢您之前提供的思路!!

@ffdfgdfg
Copy link

ffdfgdfg commented May 9, 2019

@virtueDe @aspect93 昨天今天晚上抽空测测,首先上次我说错了,这个项目基于videojs6.6+的,所以我当时说videojs5引起误导。
我直接用npm安装这个项目,项目内自动装videojs6.13,这就是videojs6的最新版了,之前的办法可以用。
再说说用videojs7,我用npm下的最新videojs7.5.4替换掉项目的node_modules内的老videojs6.13,改了下package.json,去掉ie8,hls等等多余依赖,直接就能用,不管是调试还是编译,videojs7里面确实内建了videojs-http-streaming,所以想用videojs7的话可以这么干。

@wuhao0815
Copy link

@virtueDe 你好,请问你是怎么解决的?

@virtueDe
Copy link

virtueDe commented Jul 4, 2019

@wuhao0815 把videojs源码下载 依赖到本地 就用videojs

@wuhao0815
Copy link

@virtueDe 是整个项目还是只要video.js

@DiaoFromHappyValley
Copy link

@surmon-china @ffdfgdfg @chuanshuo-yongyuan 我在webpack处已经添加这一行,
image
打包上传至服务器发现
image

这个要怎么处理呢?麻烦大家给个解决方案谢谢

你好 你解决了吗

@DiaoFromHappyValley
Copy link

最近看了下videojs,videojs7已经不用videojs-contrib-hls 改用内建videojs-http-streaming,解决这个问题我想有两个思路,一个是降级videojs成5,这个以前确实是能够解决的;还有就是不解析 videojs-http-streaming。具体的我也没有测试过,给不出详细办法,近来上班了比较忙,见谅。 De notifications@github.com 于2019年5月7日周二 下午3:58写道:

@surmon-china https://github.com/surmon-china 您好,我也遇到上诉的问题,本地运行正常,部署到线上控制台报错: e is not defined。 在webpack也已经配置: [image: image] https://user-images.githubusercontent.com/46802209/57282651-14797480-70e0-11e9-97bc-9c20e3c4c38f.png js库各版本: "vue-video-player": "^5.0.2", "vue": "^2.5.11", "video.js": "^7.5.4", "videojs-contrib-hls": "^5.15.0", 项目代码 import 'vue-video-player/src/custom-theme.css' import videojs from 'video.js' window.videojs = videojs require('videojs-contrib-hls/dist/videojs-contrib-hls.js') <video-player class="vjs-custom-skin" :options="playerOptions(item, idx)" @ready="playerReadied"> playerOptions(item, idx){ return { autoplay: false, muted: true, preload: 'auto', language: "en", aspectRatio: '16:9', sources: [{ withCredentials: false, type: "application/x-mpegURL", src: item.url }], controlBar: { timeDivider: false, durationDisplay: false }, flash: { hls: { withCredentials: false }}, html5: { hls: { withCredentials: false }}, poster: "https://gydev-1252687978.piccd.myqcloud.com/gy/pc-upload/20190506/768d8f3a-20cb-4e3f-bb8b-7b2ba459cc2c.png" } }, 项目紧急,期待您的解答!! @surmon-china https://github.com/surmon-china — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#90 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AEJHFX2KHCWNZAOLD45FUOLPUEZDRANCNFSM4DZL3I4A .

你好 我也报错了那个 required is not defined.请问现在有什么办法解决吗?

@MuBeiSAMA
Copy link

How to use noParse in nuxt.config.js ...?

set config.module.noParse = /videojs-contrib-hls/ in the extend function in the nuxt.config.js

@linux2014linux
Copy link

linux2014linux commented Sep 16, 2019

m3u8格式的视频,本地可以正常播放,打包发布之后就'No compatible source was found for this media.'变成这个,希望大佬解答一下,困扰几天了,感激不尽@surmon-china
image

请问你解决了吗??

我也遇到了同样的问题,我是忘记了如下语句:

    import 'video.js/dist/video-js.css';
    import 'vue-video-player/src/custom-theme.css';
    import 'videojs-contrib-hls';   // <----- 我就是忘记了这一行语句
    import { videoPlayer } from 'vue-video-player';
    export default {
      name: "VideoPlayerWithCover",
      components: { videoPlayer },
    ....

@qxk123
Copy link

qxk123 commented Nov 30, 2021

@ffdfgdfg 您好!问题刚刚已经解决。我是按照@aspect93的方法 把源码下载,依赖于本地,线上显示不报错了!非常感谢您之前提供的思路!!

具体是什么样的,能详细说一下吗?因为我现在也是这个问题

@Tsingkai
Copy link

default

同样编译之后在服务器上运行报错:

你这个播放的是本地的视频吗?可以播放blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906 这样的链接吗?
我通过这种方法生成了本地视频的URL

export function readMediaFile(file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.readAsArrayBuffer(file.raw)
    reader.onloadend = (e) => {
      const buffer = e.target.result
      const videoBlob = new Blob([new Uint8Array(buffer)], { type: 'video/mp4' })
      const url = window.URL.createObjectURL(videoBlob)// 此处url内容形如 blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906
      const realUrl = url.slice(5)
      resolve(realUrl)
    }
    reader.onerror = (e) => {
      reject(e)
    }
  })
}

@heelaine
Copy link

default
同样编译之后在服务器上运行报错:

你这个播放的是本地的视频吗?可以播放blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906 这样的链接吗? 我通过这种方法生成了本地视频的URL

export function readMediaFile(file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.readAsArrayBuffer(file.raw)
    reader.onloadend = (e) => {
      const buffer = e.target.result
      const videoBlob = new Blob([new Uint8Array(buffer)], { type: 'video/mp4' })
      const url = window.URL.createObjectURL(videoBlob)// 此处url内容形如 blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906
      const realUrl = url.slice(5)
      resolve(realUrl)
    }
    reader.onerror = (e) => {
      reject(e)
    }
  })
}

浏览器版本过低就会报图片的错误,目前已知chrome65会报错

@Ezra-Chan
Copy link

我没用这个插件,直接用的videojs,遇到这个问题,搜索到这里了。
我用的是8.X的版本,解决方案是
import videojs from '!video.js'
参考videojs/video.js#8170 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests