vue如何提取视频中的音频

vue怎么通过纯代码实现mp4视频流中提取视频中的音频
只要能提取到音频 不管出来的格式是怎么样都可以

首先,你需要使用Vue.js来解析MP4文件,然后使用HTML5的Audio API来提取音频,最后使用Vue.js来将音频文件转换成你需要的格式。

下面是一个示例:

<template>
  <div>
    <video ref="video" :src="videoSrc" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      videoSrc: 'video.mp4'
    }
  },
  methods: {
    extractAudio() {
      const video = this.$refs.video
      const audioCtx = new AudioContext()
      const source = audioCtx.createMediaElementSource(video)
      const dest = audioCtx.createMediaStreamDestination()
      source.connect(dest)
      const audioStream = dest.stream
      const audioBlob = new Blob([audioStream], { type: 'audio/mpeg' })
      const audioUrl = URL.createObjectURL(audioBlob)
      // do something with the audioUrl
    }
  }
}
</script>

上面的代码是Vue.js和HTML5的Audio API来提取MP4视频文件中的音频,并将其转换成MPEG格式的文件。

可以参考这个:

https://blog.csdn.net/weixin_38763607/article/details/106680853

仅供参考:该方法只能提取mp4格式的音频

<video id="myVideo" width="640" height="360"></video>
mounted() {
  // 创建video元素
  const video = document.getElementById('myVideo');
  // 设置视频地址
  video.src = 'http://example.com/video.mp4';
  // 创建AudioContext对象
  const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
}
// 获取视频中的音频轨道
const source = audioCtx.createMediaElementSource(video);
// 创建MediaSource对象
const mediaSource = new MediaSource();
// 获取音频数据
source.connect(audioCtx.destination);
const recorder = new MediaRecorder(mediaSource);
recorder.start();
mediaSource.addEventListener('sourceopen', () => {
  const sourceBuffer = mediaSource.addSourceBuffer('audio/mp4; codecs="mp4a.40.2"');
  recorder.addEventListener('dataavailable', (event) => {
    sourceBuffer.appendBuffer(event.data);
  });
});
recorder.addEventListener('stop', () => {
  mediaSource.endOfStream();
});
// 将Blob对象转换为音频文件
const blob = new Blob([audioData], { type: 'audio/mp4' });
const url = URL.createObjectURL(blob);
// 创建音频元素
const audio = new Audio();
// 设置音频地址
audio.src = url;