Coffee不加糖啊 2023-08-21 11:40 采纳率: 28%
浏览 22
已结题

vue video+flv.js,播放视频获取到实时码率

vue video+flv.js,播放视频获取到实时码率
请问播放视频后,如何获取到实时码率,实时码率=每秒文件大小*8/1024
但是每秒文件大小也无法获取到,打印this.flvPlayer.statisticsInfo字段获取信息如下:

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-21 14:48
    关注

    【以下回答由 GPT 生成】

    问题解决方案: 首先,在Vue中使用flv.js播放视频需要安装相应的依赖包。可以通过以下命令来安装flv.js和Vue的flv组件:

    npm install flv.js
    npm install vue-flv-player
    

    在Vue组件中导入flv.js和vue-flv-player组件:

    import flvjs from 'flv.js'
    import FlvPlayer from 'vue-flv-player'
    

    在导入之后,可以在Vue组件中使用vue-flv-player组件来播放视频。在模板中插入如下代码:

    <flv-player ref="player" :volume="0" v-bind:options="{flv: 'yourVideoUrl.flv'}"></flv-player>
    

    接下来,我们需要在Vue实例的钩子函数中初始化flv.js播放器,并在播放器的统计信息中获取实时码率。可以在Vue组件的created钩子函数中添加以下代码:

    created() {
      this.$nextTick(() => {
        this.$refs.player.$watch('player', (player) => {
          if (flvjs.isSupported()) {
            const flvPlayer = flvjs.createPlayer({
              type: 'flv',
              url: 'yourVideoUrl.flv'
            });
            flvPlayer.attachMediaElement(player.$el);
            flvPlayer.load();
            flvPlayer.play();
    
            setInterval(() => {
              const statisticsInfo = flvPlayer.statisticsInfo;
              if (statisticsInfo && statisticsInfo.video && statisticsInfo.speed) {
                const fileSize = statisticsInfo.video.totalBytes;
                const bitrate = fileSize * 8 / 1024;
                console.log(`实时码率:${bitrate} Kbps`);
              }
            }, 1000);
          }
        });
      });
    }
    

    在上面的代码中,我们在Vue组件的created钩子函数中使用$watch来监听vue-flv-player组件的player属性,一旦初始化完成,就创建flv.js播放器并进行视频播放和统计信息获取。通过使用setInterval函数,我们每秒钟获取一次统计信息,并计算实时码率。

    请注意,上述代码中的yourVideoUrl.flv应该是你要播放的视频的URL。此外,你也可以根据flv.js和vue-flv-player的文档来调整代码以适应特定的需求。

    ⚠️ 注意:由于无法直接获取每秒文件大小,上述计算得到的实时码率是通过文件的总大小计算的,可能会有一些误差。如果需要更准确地获取每秒文件大小,可以使用其他方法,如服务器端日志分析等。

    希望这个解决方案能够帮助到你!如果你有任何问题,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月21日
  • 创建了问题 8月21日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表