Python结合FFmpeg实现批量提取视频音频

作者:

文章目录
  • project/├── v/        # 存放视频文件│   ├── a.mp4│   ├── b.mkv│   └── c.mov├── mp3/      # 输出 MP3 音频└── extract_audio.py 支持格式:mp4 / mov / avi / mkv(可自行扩展)
  • import os import subprocess def extract_audio(video_file, output_dir): # 构建输出文件路径 output_file = os.path.join( output_dir, os.path.splitext(os.path.basename(video_file))[0] + ‘.mp3’ ) # ffmpeg 命令 command = [ ‘ffmpeg’, ‘-i’, video_file, ‘-vn’, # 不处理视频流 ‘-acodec’, ‘libmp3lame’, # MP3 编码器 ‘-ab’, ‘192k’, # 音频码率 output_file ] try: subprocess.run(command, check=True) print(f”✅ 音频已提取:{output_file}”) except subprocess.CalledProcessError: print(f”❌ 处理失败:{video_file}”) def process_videos(input_dir, output_dir): os.makedirs(output_dir, exist_ok=True) for file_name in os.listdir(input_dir): if file_name.lower().endswith((‘.mp4’, ‘.mov’, ‘.avi’, ‘.mkv’)): video_path = os.path.join(input_dir, file_name) extract_audio(video_path, output_dir) if __name__ == “__main__”: input_dir = ‘./v’ output_dir = ‘./mp3’ process_videos(input_dir, output_dir)
  • 在项目根目录执行: python extract_audio.py 运行后效果: mp3/├── a.mp3├── b.mp3└── c.mp3 到此这篇关于Python结合FFmpeg实现批量提取视频音频的文章就介绍到这了,更多相关Python提取视频音频内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python轻松实现提取视频音频并去除静音片段 Python基于MoviePy实现一键提取视频音频并生成MP3 详解如何使用Python提取视频文件中的音频 Python+moviepy实现音频/视频提取器 使用python提取PowerPoint中的音频和视频 python提取视频中的音频的实现示例 python 提取视频中的音频工具类详解 提取视频中的音频 Python只需要三行代码! Python从视频中提取音频的操作
  • 目录
    • 一、环境准备
      • 安装 Python
      • 安装 FFmpeg(关键)
    • 二、项目目录结构
      • 三、完整 Python 脚本
        • 四、运行方式(全平台通用)

          在日常开发或音频处理场景中,我们经常需要从大量视频文件中批量提取音频,例如:

          • 从课程视频中提取音频
          • 将短视频转为 MP3
          • 做语音识别 / 音频分析前处理

          本文介绍一种 使用 Python 调用 FFmpeg 的通用方案,同时支持 Windows、macOS 和 Linux

          确保已安装 Python 3.7+

          python --version
          

          FFmpeg 是跨平台音视频处理神器,本脚本依赖它。

          Windows

          1.下载 FFmpeg

          2.解压后,将 bin 目录加入 系统环境变量 PATH

          3.验证:

          ffmpeg -version
          

          macOS(推荐 Homebrew)

          brew install ffmpeg
          

          验证:

          ffmpeg -version
          

          Linux(Ubuntu / Debian)

          sudo apt update
          sudo apt install ffmpeg
          

          CentOS / Rocky:

          sudo yum install ffmpeg
          

          project/
          ├── v/        # 存放视频文件
          │   ├── a.mp4
          │   ├── b.mkv
          │   └── c.mov
          ├── mp3/      # 输出 MP3 音频
          └── extract_audio.py

          支持格式:mp4 / mov / avi / mkv(可自行扩展)

          import os
          import subprocess
          
          def extract_audio(video_file, output_dir):
              # 构建输出文件路径
              output_file = os.path.join(
                  output_dir,
                  os.path.splitext(os.path.basename(video_file))[0] + '.mp3'
              )
          
              # ffmpeg 命令
              command = [
                  'ffmpeg',
                  '-i', video_file,
                  '-vn',                    # 不处理视频流
                  '-acodec', 'libmp3lame',  # MP3 编码器
                  '-ab', '192k',            # 音频码率
                  output_file
              ]
          
              try:
                  subprocess.run(command, check=True)
                  print(f"✅ 音频已提取:{output_file}")
              except subprocess.CalledProcessError:
                  print(f"❌ 处理失败:{video_file}")
          
          def process_videos(input_dir, output_dir):
              os.makedirs(output_dir, exist_ok=True)
          
              for file_name in os.listdir(input_dir):
                  if file_name.lower().endswith(('.mp4', '.mov', '.avi', '.mkv')):
                      video_path = os.path.join(input_dir, file_name)
                      extract_audio(video_path, output_dir)
          
          if __name__ == "__main__":
              input_dir = './v'
              output_dir = './mp3'
              process_videos(input_dir, output_dir)
          

          在项目根目录执行:

          python extract_audio.py
          

          运行后效果:

          mp3/
          ├── a.mp3
          ├── b.mp3
          └── c.mp3

          到此这篇关于Python结合FFmpeg实现批量提取视频音频的文章就介绍到这了,更多相关Python提取视频音频内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

          您可能感兴趣的文章:

          • Python轻松实现提取视频音频并去除静音片段
          • Python基于MoviePy实现一键提取视频音频并生成MP3
          • 详解如何使用Python提取视频文件中的音频
          • Python+moviepy实现音频/视频提取器
          • 使用python提取PowerPoint中的音频和视频
          • python提取视频中的音频的实现示例
          • python 提取视频中的音频工具类详解
          • 提取视频中的音频 Python只需要三行代码!
          • Python从视频中提取音频的操作

          站内搜索