提取音频

视频→音频

416 次访问
🎵
EXTRACT AUDIO

视频提取音频

从视频提取音轨为 MP3/WAV/AAC/OGG · 浏览器版可用 MediaRecorder

FFmpeg 命令行(推荐)

视频处理涉及复杂的解码 / 编码 / 滤镜操作,桌面 FFmpeg(开源 / 免费)是业界事实标准。安装 5 分钟,运行如下命令一次解决:

# 提取为 MP3(最常用) ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3 # 提取为 WAV(无损) ffmpeg -i input.mp4 -vn -c:a pcm_s16le output.wav # 提取为 AAC(直接复制,最快) ffmpeg -i input.mp4 -vn -c:a copy output.aac

桌面 FFmpeg 安装

macOS

brew install ffmpeg

用 Homebrew,5 秒安装

Linux

sudo apt install ffmpeg # 或 sudo dnf install ffmpeg

Debian/Ubuntu/Fedora

Windows

下载 Gyan FFmpeg builds

解压后将 bin 目录加入 PATH

Docker

docker run --rm -v $PWD:/work \ jrottenberg/ffmpeg -i input.mp4 ...

无需本地安装

操作步骤

步骤 1:安装 FFmpeg

按上方系统对应的命令安装。验证:ffmpeg -version 应输出版本号。

步骤 2:复制本页面提供的命令

input.mp4 改为你的实际视频文件路径。

步骤 3:在视频所在目录运行

用终端 (Terminal / cmd / PowerShell) 切到视频所在目录,粘贴命令并回车。

步骤 4:等待处理完成

短视频几秒,长视频几分钟。输出文件出现在同目录。

提示

-vn:不处理视频;-c:a copy:直接复制音轨(无损 + 极快)。

关于本工具

了解工具定位 · 使用场景 · 对比优势

将视频文件中的音频轨道提取为 MP3、AAC、WAV 等格式,保留原始音质。适用于剪辑师提取背景音乐、播客制作者复用视频录音、学生转录网课音频。工具基于 FFmpeg 处理,纯浏览器端完成,视频文件不上传服务器。

使用场景

🎓

网课音频复习

考研学生录播课刷了 3 遍,眼睛疲劳、倍速看容易跳重点。把课程视频拖入工具,直接抽取出纯音频,通勤、跑步、睡前闭眼听,不费眼还能反复磨耳朵,重点段落用手机录音机标记时间戳即可。

🎤

自媒体口播提取

短视频创作者拍了 10 条口播素材,但画面杂音大、需要重新配音。用本工具提取原始音频,导入 Audacity 做降噪、调 EQ,再重新对轨视频,省去现场重录的时间,保留原始语气和节奏。

📼

会议录音归档

行政人员每月整理 20+ 场线上会议视频,领导要听某位发言人的完整发言。用本工具批量提取每场视频的音频流,按日期命名导出 MP3,后续交给语音转文字工具,比直接翻视频快 5 倍。

🎵

MV 扒伴奏

音乐爱好者想翻唱某首歌但找不到纯伴奏版。把官方 MV 拖入工具,提取出完整音频,再用 Audacity 做中置声道提取(人声居中、伴奏分散),虽不能完全去人声,但能获得可用的伴奏底子。

📱

手机视频转铃声

用户想用电影台词片段做手机铃声,但手机自带的视频转音频功能限制时长或格式。把视频上传本工具,截取 30 秒内片段导出为 MP3,再通过数据线拷入手机「铃声」文件夹,全程无广告无付费。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (Online Audio Converter)传统方法 (FFmpeg 命令行)
数据隐私纯浏览器处理,文件不上传服务器文件上传至服务器处理文件完全在本地处理,无网络传输
处理速度1-3 秒(取决于文件大小)5-30 秒(含上传+排队+下载)即时(取决于命令行执行效率)
离线可用支持(WASM 技术,页面加载后断网可用)不支持(必须联网)支持(需预先安装 FFmpeg)
操作门槛零门槛,打开网页即用零门槛,上传后点按钮高,需掌握命令行语法和参数
文件大小限制受浏览器内存限制(通常 2GB 以内)有明确上传限制(通常 200MB-1GB)无限制(取决于硬盘空间)
输出格式选择固定输出 MP3(320kbps)支持 MP3, WAV, FLAC, OGG 等 10+ 种格式支持所有 FFmpeg 支持的音频格式
批量处理不支持(单次一个文件)支持(可同时上传多个文件)支持(通过脚本批量处理)

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 选择或拖入视频文件,支持 MP4、AVI、MOV、MKV 等常见格式,单文件 ≤ 500MB
  2. 点击「提取音频」按钮,工具使用 FFmpeg 在浏览器端/服务端完成转换
  3. 转换完成后点击「下载」保存为 MP3 格式音频文件

输入输出示例8 个典型场景,覆盖常规、边界与易错

输入输出说明
https://example.com/video.mp4audio.mp3 (192kbps, 44100Hz, stereo)典型场景:从 MP4 视频中提取音频为 MP3 格式
C:\Users\test\video.movaudio.wav (PCM 16-bit, 44100Hz, stereo)典型场景:从 MOV 视频中提取无损 WAV 音频
https://example.com/video.aviaudio.aac (128kbps, 44100Hz, stereo)典型场景:从 AVI 视频中提取 AAC 音频,兼顾文件大小与音质
https://example.com/video_without_audio.mp4错误:视频流中未检测到音频轨道边界 case:视频文件本身不含音频轨道
https://example.com/video_5.1ch.mkvaudio.ac3 (640kbps, 48000Hz, 5.1 channels)边界 case:多声道(5.1)环绕声视频,保留原始声道布局
https://example.com/video_1hour.mp4audio.mp3 (192kbps, 44100Hz, stereo, 1h02m30s)边界 case:长视频(1小时以上),输出时长与输入一致
https://example.com/video.mp4?token=abc123audio.mp3 (192kbps, 44100Hz, stereo)易错 case:视频 URL 带查询参数,工具应正确解析文件
https://example.com/video.mp4 (中文文件名).mp4audio.mp3 (192kbps, 44100Hz, stereo)易错 case:中文或特殊字符文件名,需 URL 编码后传入

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 上传了非视频文件

错误
上传一个 .mp3 文件或 .zip 压缩包
修复
上传 .mp4, .mov, .avi, .mkv, .flv 等视频格式文件

工具只接受视频文件作为输入,音频文件或压缩包无法被 FFmpeg 解析,会直接报错或返回空结果。

2. 输出格式选了不支持的容器

错误
选择 .aac 作为输出格式,但工具只提供 .mp3 / .wav / .ogg
修复
从工具提供的下拉列表中选择 .mp3, .wav 或 .ogg

FFmpeg 后端只配置了这三种常见音频编码器,其他格式(如 .aac, .flac)未启用,选择后会返回格式不支持错误。

3. 输入视频时长超过服务限制

错误
上传一个 3 小时 1080p 视频,期望几秒内完成
修复
上传 30 分钟以内的短视频,或分段上传

浏览器端 WASM 和服务器端 Go 处理均有内存与时间限制,超长视频会导致浏览器崩溃或服务器超时(默认 60s)。

4. 拖拽文件到页面非文件上传区域

错误
把视频文件拖到页面空白处或标题上
修复
拖拽到标注了「拖拽文件到此处」的虚线框内,或点击按钮选择文件

浏览器默认拖拽行为是打开文件或下载,只有绑定 drop 事件的元素才能正确触发上传逻辑。

5. 误以为支持批量处理

错误
一次选择 5 个视频文件,期望全部转换
修复
每次只选择一个视频文件,转换完成后再处理下一个

工具设计为单文件处理,多文件选择只会取第一个文件处理,其余被忽略。批量处理需要额外队列逻辑。

6. 等待时关闭浏览器标签页

错误
点击「开始提取」后立刻关闭页面,回来发现没下载
修复
等待进度条走完或出现「下载」按钮后再离开页面

WASM 处理在浏览器内存中进行,关闭标签页会终止 Worker 进程,结果不会保存到服务器。

7. 输出文件命名包含特殊字符

错误
输入视频名为「测试: 视频 #1.mp4」,期望输出文件名正常
修复
使用字母、数字、下划线、连字符命名,如「test_video_1.mp4」

FFmpeg 在部分浏览器环境下对文件名中的冒号、井号、中文等字符处理异常,可能导致下载失败或文件名乱码。

8. 把提取的音频直接用于商业发布

错误
从 YouTube 下载的演唱会视频提取音频后上传到音乐平台
修复
仅用于个人学习、剪辑测试或已获得版权方授权的内容

工具不验证输入视频版权。用户需自行确认视频来源合法,提取后音频的版权归属与原视频一致。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

无精确数学公式,核心逻辑为:从视频容器中提取音频流,按指定编码格式(如 MP3 / AAC / WAV)和参数(采样率、比特率)重新封装输出。

变量说明

  • 采样率 — 每秒音频采样次数,单位 Hz
  • 比特率 — 音频数据压缩率,单位 kbps
  • 声道数 — 音频通道数量(单声道/立体声)

示例

输入一个 1920×1080、时长 3 分 20 秒的 MP4 视频文件。提取音频时选择 MP3 编码,采样率 44100 Hz,比特率 192 kbps,立体声。输出为 3 分 20 秒的 MP3 文件,文件大小约 4.6 MB(计算:192 kbps × 200 秒 ÷ 8 = 4800 KB ≈ 4.69 MB)。

适用范围

适用于主流视频格式(MP4 / AVI / MOV / MKV / FLV)的音频提取。不适用于加密视频流(如 DRM 保护内容)或纯视频无音轨文件。基于 FFmpeg 开源库实现,支持常见音频编码格式(MP3 / AAC / WAV / FLAC / OGG)。

原理图

选择视频文件.mp4 / .mov / .aviFFmpeg 提取音频WASM 本地解码下载音频文件.mp3 / .wav / .ogg所有处理在浏览器本地完成,视频文件不上传服务器无需等待上传,文件越大优势越明显输入:mp4 / mov / avi / mkv输出:mp3 / wav / ogg / flac支持自定义比特率 / 采样率
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import subprocess
import os

# 提取音频:从 MP4 视频中提取 AAC 音频
input_video = "input.mp4"
output_audio = "output.aac"

if not os.path.exists(input_video):
    print(f"错误:文件 {input_video} 不存在")
    exit(1)

# 使用 FFmpeg 提取音频流,不重新编码(-c copy)
cmd = [
    "ffmpeg", "-i", input_video,
    "-vn",                    # 丢弃视频流
    "-c:a", "copy",          # 直接复制音频流,不重新编码
    output_audio
]

result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
    print(f"FFmpeg 错误:{result.stderr}")
else:
    print(f"音频已提取至 {output_audio}")
package main

import (
	"fmt"
	"os"
	"os/exec"
)

func main() {
	input := "input.mp4"
	output := "output.mp3"

	// 检查输入文件是否存在
	if _, err := os.Stat(input); os.IsNotExist(err) {
		fmt.Printf("错误:文件 %s 不存在\n", input)
		return
	}

	// FFmpeg 命令:将视频音频转为 MP3
	cmd := exec.Command("ffmpeg",
		"-i", input,
		"-vn",           // 丢弃视频
		"-acodec", "libmp3lame", // MP3 编码器
		"-ab", "192k",   // 比特率 192kbps
		output,
	)

	if err := cmd.Run(); err != nil {
		fmt.Printf("FFmpeg 执行失败:%v\n", err)
		return
	}
	fmt.Printf("音频已提取至 %s\n", output)
}
const { exec } = require('child_process');
const path = require('path');

const inputVideo = 'input.mp4';
const outputAudio = 'output.wav';

// 使用 FFmpeg 提取 WAV 格式音频(无损)
exec(
  `ffmpeg -i "${inputVideo}" -vn -acodec pcm_s16le -ar 44100 -ac 2 "${outputAudio}"`,
  (error, stdout, stderr) => {
    if (error) {
      console.error(`提取失败:${stderr}`);
      return;
    }
    console.log(`音频已保存至 ${outputAudio}`);
  }
);

常见问题

8 个高频疑问

为什么我提取出来的音频只有几秒钟,但原视频有十几分钟?
最常见的原因是视频本身有静音检测或音频轨道并非全程都存在。部分视频(如录屏、会议录像)在某些片段可能没有音频信号,但更常见的是上传文件时选择了「提取前 30 秒」的预览模式——本工具默认提取完整音频,但如果浏览器或网络中断导致上传中断,FFmpeg 处理的是不完整的文件。建议检查文件是否上传完整(进度条到 100%),或换用 Chrome 浏览器重试。
提取出来的音频格式是 MP3 还是 WAV?能自己选吗?
默认输出 MP3(320kbps 码率),这是兼容性最好的通用格式。工具暂不支持在界面手动切换格式,但可以通过以下变通实现:如果需 WAV 格式,用本工具的「格式转换」功能(同一站点下)将 MP3 再转一次;如果需 AAC/AAC+,建议直接使用桌面端 FFmpeg 命令。MP3 在 320kbps 下音质接近无损,适合大多数场景(播客、配乐、语音笔记)。
上传了 4K 视频,但提取速度很慢,正常吗?
正常。处理速度取决于视频的总时长和服务器当前负载,与分辨率(4K/1080p)关系不大,因为 FFmpeg 只解码音频轨道,不处理视频画面。但 4K 视频通常文件体积大,上传耗时更长。本工具后端用 FFmpeg 的 `-vn -acodec copy` 模式(直接复制音频流,不重新编码),所以处理 1 小时视频通常只需 10-30 秒。如果感觉慢,更多是上传带宽瓶颈——建议压缩视频后再上传。
支持从 B 站下载的 m4s 视频提取音频吗?
支持。B 站 m4s 格式本质是分段 MP4,合并后音频轨道为 AAC 编码。本工具后端 FFmpeg 能自动识别 m4s 容器并提取音频流。注意:m4s 文件通常需要先合并(用 B 站官方工具或 ffmpeg concat 协议),单独上传一个 .m4s 片段可能无法正常解析。如果上传后提示「无法识别格式」,请先合并成完整 MP4 再传。
提取出来的音频和原视频声音不同步,差了几秒,怎么办?
大概率是原视频本身存在音画不同步(录制或转码时产生的偏移),而非提取过程导致。本工具只复制音频轨道,不改变时间戳。可用以下方法验证:用 VLC 播放原视频,如果也存在偏移(比如口型对不上),则说明是源文件问题。修复方法:用 FFmpeg 命令行加 `-itsoffset -2` 参数(偏移 2 秒)重新封装,或使用剪辑软件手动对齐。
这个工具和手机自带的「录音」功能有什么区别?
完全两码事。手机自带录音是麦克风录制环境声音,本工具是从视频文件中直接提取已有的音频轨道——相当于把视频里的声音「拆」出来,不经过麦克风,音质等于原视频的音频质量(取决于原视频的采样率和编码)。适用场景:你需要把网课回放、电影片段、采访视频的音频单独保存到手机听,或者做后期剪辑时分离音轨。
提取的音频文件能直接用于商业用途吗?会不会有版权问题?
本工具只提供技术上的格式转换,不涉及内容审核。版权责任在于上传者——如果原视频受版权保护(如付费电影、音乐 MV),未经授权提取音频并商用可能侵权。工具不会对内容做任何修改或存储(处理完成后立即删除临时文件)。建议仅用于个人学习、配音练习、无版权素材(如 CC0 协议视频)或自己拍摄的内容。
上传时提示「文件过大」或「格式不支持」,最大支持多大?
目前限制单文件最大 500MB,超过会拒绝上传。支持的视频格式包括 MP4、AVI、MOV、MKV、FLV、WMV、WebM 等常见容器,以及 TS/MTS(部分摄像机格式)。如果文件超限或格式不支持,可用本地工具(如 HandBrake)先压缩或转码成 H.264 + AAC 的 MP4,再上传。注意:部分老旧格式(如 DivX 3、RealMedia)FFmpeg 虽能解码,但服务器可能因未知编码而报错。
选择 打开 +新窗口 esc关闭