我正在寻找一个支持视频文件中多个音频轨道/流的web / html5 / javascript视频播放器

SvEnjoyPro

我收到了h.264 / aac编码的mp4视频文件,我想播放它们。我的一些视频文件中有多个音频流或音轨(例如英语流和西班牙语流)。我想允许用户在两​​个音轨之间切换。我尝试了video.js,它将可以正常播放视频和默认音频流,但是我看不到有任何方法可以更改UI中的音轨,而videojs.audioTracks()始终返回一个空数组(我m使用Chrome,而我只需要支持Chrome)。

var video = document.getElementById("video");
video.audioTracks; // <-- undefined

let video = videojs('video');
let audioTrackList = video.audioTracks();
audioTrackList.tracks; // <-- [] empty array

有人知道解决方案吗,是我在video.js中做错了什么,还是在video.js中插入了插件/扩展名,或者是其他播放器?

编辑:

这是一个基本的示例html文件:

<html>
<head>
  <link href="https://vjs.zencdn.net/7.7.5/video-js.css" rel="stylesheet" />

<body>
  <video
    id="my-video"
    class="video-js"
    controls
    preload="auto"
    width="640"
    height="264"
    data-setup="{}"
  >
    <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4" />
    <p class="vjs-no-js">
      To view this video please enable JavaScript, and consider upgrading to a
      web browser that
      <a href="https://videojs.com/html5-video-support/" target="_blank"
        >supports HTML5 video</a
      >
    </p>
  </video>

  <script src="https://vjs.zencdn.net/7.7.5/video.js"></script>
<script>
var vid = document.getElementById("my-video");
vid.onloadeddata = function() {

    // get the current players AudioTrackList object
    var player = videojs('my-video')
    let tracks = player.audioTracks();

    alert(tracks.length);

    for (let i = 0; i < tracks.length; i++) {
        let track = tracks[i];
        console.log(track);
        alert(track.language);
    }
};
</script>
</body>
</html>

而且它只会警告“ 0”。没有后续的警报和控制台日志。在Chrome,Firefox和Edge中进行了测试。

更新:我终于发现启用chrome:// flags(https://caniuse.com/#feat=audiotracks)中的标记“ enable-experimental-web-platform-features”可以使此方法起作用。

这是一些基本的html代码:

<html>
<head>
    <link href="https://vjs.zencdn.net/7.7.5/video-js.css" rel="stylesheet"/>
<body>
<video
        id="my-video"
        class="video-js"
        controls
        preload="auto"
        width="640"
        height="264"
        data-setup="{}">
    <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4"/>
    <p class="vjs-no-js">
        To view this video please enable JavaScript, and consider upgrading to a
        web browser that
        <a href="https://videojs.com/html5-video-support/" target="_blank"
        >supports HTML5 video</a
        >
    </p>
</video>

<button onclick="onClick()">Toggle Audio</button>
<script src="https://vjs.zencdn.net/7.7.5/video.js"></script>
<script>
    var VIDEO_JS = videojs('my-video');

    function onClick() {
        let tracks = VIDEO_JS.audioTracks();

        tracks.tracks_[0].enabled = !tracks.tracks_[0].enabled;
        tracks.tracks_[1].enabled = !tracks.tracks_[1].enabled;
    }
</script>
</body>
</html>

但是来回切换音频效果不佳。音频会立即切换,但视频会冻结直到赶上或出现问题,但所有内容都不同步。

马斯特本

您应该将视频转换为HLS。Video.js通过HLS自动支持多个音轨。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

视频广告未在YouTube HTML5播放器中展示

来自分类Dev

如何将视频从Play 2 Framework流式传输到HTML5播放器

来自分类Dev

HTML5视频播放器:动态加载视频

来自分类Dev

在HTML5视频API播放器中使用HTML5音频API功能

来自分类Dev

如何制作通用的HTML5视频播放器

来自分类Dev

HTML5视频播放器进度栏更新

来自分类Dev

如何在同一HTML5播放器中放大视频并切换视频流?

来自分类Dev

视频播放器:HTML5 vs Youtube API

来自分类Dev

html5视频播放器错误处理

来自分类Dev

ffmpeg mp4视频无法在浏览器的html5视频播放器上播放(格式错误)

来自分类Dev

将视频播放器html5 iframe嵌入到YouTube之类的Facebook共享中

来自分类Dev

如何使用JavaScript和HTML5播放器更改当前正在播放的YouTube视频的播放速度?

来自分类Dev

使用PHP将视频文件加载到html5播放器

来自分类Dev

Web应用程序中的嵌入式Youtube视频播放器与html5 / flash视频播放器

来自分类Dev

html5视频播放器和视频js之间的关系

来自分类Dev

如何在html5音频和视频播放器中回显php数组?

来自分类Dev

如何在进度指示栏中的html5视频播放器中添加标记?

来自分类Dev

在iOS中安装PWA时,我的HTML5视频播放器无法正常工作

来自分类Dev

视频广告未在YouTube HTML5播放器中展示

来自分类Dev

HTML视频播放器

来自分类Dev

使用HTML5和javascript在全屏播放器而非背景全屏模式下自动播放视频

来自分类Dev

视频播放器:HTML5 vs Youtube API

来自分类Dev

自定义html5视频播放器的controls元素中的按钮

来自分类Dev

HTML5视频播放器全屏问题

来自分类Dev

如何防止HTML5视频播放器播放图标在iPhone Safari中消失

来自分类Dev

随播广告未显示在Google HTML5视频播放器中

来自分类Dev

媒体视频播放器HTML5 JS

来自分类Dev

HTML5 视频播放器 onclick 播放/暂停不起作用

来自分类Dev

如何通过 JavaScript 在 HTML5 视频播放器上显示不同语言的字幕?

Related 相关文章

  1. 1

    视频广告未在YouTube HTML5播放器中展示

  2. 2

    如何将视频从Play 2 Framework流式传输到HTML5播放器

  3. 3

    HTML5视频播放器:动态加载视频

  4. 4

    在HTML5视频API播放器中使用HTML5音频API功能

  5. 5

    如何制作通用的HTML5视频播放器

  6. 6

    HTML5视频播放器进度栏更新

  7. 7

    如何在同一HTML5播放器中放大视频并切换视频流?

  8. 8

    视频播放器:HTML5 vs Youtube API

  9. 9

    html5视频播放器错误处理

  10. 10

    ffmpeg mp4视频无法在浏览器的html5视频播放器上播放(格式错误)

  11. 11

    将视频播放器html5 iframe嵌入到YouTube之类的Facebook共享中

  12. 12

    如何使用JavaScript和HTML5播放器更改当前正在播放的YouTube视频的播放速度?

  13. 13

    使用PHP将视频文件加载到html5播放器

  14. 14

    Web应用程序中的嵌入式Youtube视频播放器与html5 / flash视频播放器

  15. 15

    html5视频播放器和视频js之间的关系

  16. 16

    如何在html5音频和视频播放器中回显php数组?

  17. 17

    如何在进度指示栏中的html5视频播放器中添加标记?

  18. 18

    在iOS中安装PWA时,我的HTML5视频播放器无法正常工作

  19. 19

    视频广告未在YouTube HTML5播放器中展示

  20. 20

    HTML视频播放器

  21. 21

    使用HTML5和javascript在全屏播放器而非背景全屏模式下自动播放视频

  22. 22

    视频播放器:HTML5 vs Youtube API

  23. 23

    自定义html5视频播放器的controls元素中的按钮

  24. 24

    HTML5视频播放器全屏问题

  25. 25

    如何防止HTML5视频播放器播放图标在iPhone Safari中消失

  26. 26

    随播广告未显示在Google HTML5视频播放器中

  27. 27

    媒体视频播放器HTML5 JS

  28. 28

    HTML5 视频播放器 onclick 播放/暂停不起作用

  29. 29

    如何通过 JavaScript 在 HTML5 视频播放器上显示不同语言的字幕?

热门标签

归档