avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python 使用 ffmpeg 进行 音视频格式转换等操作
文章

Python 使用 ffmpeg 进行 音视频格式转换等操作

Posted 2024-10-27 Updated 2024-10- 25
By RWO.
9~11 min read

在 Python 中,进行音视频格式转换可以使用 ffmpeg,一个功能强大的音视频处理工具。通过 ffmpeg,可以进行各种音视频转换、剪辑、合并等操作。Python 中,可以使用 ffmpeg-python 库作为与 ffmpeg 进行交互的接口。也可以操作命令行,但是及其不推荐。

安装 ffmpeg 和 ffmpeg-python

首先,确保已经安装 ffmpeg。可以从 ffmpeg 官网 下载并安装适合你操作系统的版本。
视频里下载好的,点我下载 win 版 7.1

然后,安装 ffmpeg-python 库:

1
pip install ffmpeg-python

使用 ffmpeg-python 进行音视频格式转换

以下是一些示例,展示如何使用 ffmpeg-python 库进行音视频格式转换。

示例:视频格式转换(MP4 转 AVI)

1
2
3
4
5
6
7
8
9
10
11
import ffmpeg

def convert_video(input_file, output_file):
    try:
        ffmpeg.input(input_file).output(output_file).run()
        print(f"视频已成功转换为 {output_file}")
    except ffmpeg.Error as e:
        print(f"视频转换失败: {e}")

# 示例调用
convert_video('input.mp4', 'output.avi')

示例:音频格式转换(MP3 转 WAV)

1
2
3
4
5
6
7
8
9
10
11
import ffmpeg

def convert_audio(input_file, output_file):
    try:
        ffmpeg.input(input_file).output(output_file).run()
        print(f"音频已成功转换为 {output_file}")
    except ffmpeg.Error as e:
        print(f"音频转换失败: {e}")

# 示例调用
convert_audio('input.mp3', 'output.wav')

批量音视频格式转换

如果需要批量转换文件夹中的音视频格式,可以使用以下示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import ffmpeg

def batch_convert(input_directory, output_directory, input_extension, output_extension):
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)

    for filename in os.listdir(input_directory):
        if filename.endswith(input_extension):
            input_path = os.path.join(input_directory, filename)
            output_filename = os.path.splitext(filename)[0] + output_extension
            output_path = os.path.join(output_directory, output_filename)

            try:
                ffmpeg.input(input_path).output(output_path).run()
                print(f"{input_path} 已转换为 {output_path}")
            except ffmpeg.Error as e:
                print(f"转换 {input_path} 时发生错误: {e}")

# 示例调用
batch_convert('input_videos', 'output_videos', '.mp4', '.avi')
batch_convert('input_audios', 'output_audios', '.mp3', '.wav')

高级选项

转换并调整视频参数

在转换视频格式时,可以同时调整视频的分辨率、比特率等参数:

1
2
3
4
5
6
7
8
9
10
11
import ffmpeg

def convert_video_with_options(input_file, output_file, resolution='1280x720', bitrate='500k'):
    try:
        ffmpeg.input(input_file).output(output_file, vf=f'scale={resolution}', video_bitrate=bitrate).run()
        print(f"视频已成功转换为 {output_file},分辨率: {resolution},比特率: {bitrate}")
    except ffmpeg.Error as e:
        print(f"视频转换失败: {e}")

# 示例调用
convert_video_with_options('input.mp4', 'output.avi')

提取视频中的音频

可以从视频文件中提取音频并保存为音频文件:

1
2
3
4
5
6
7
8
9
10
11
import ffmpeg

def extract_audio_from_video(input_file, output_file):
    try:
        ffmpeg.input(input_file).output(output_file, vn=True).run()  # vn=True 表示不处理视频流
        print(f"音频已成功提取到 {output_file}")
    except ffmpeg.Error as e:
        print(f"音频提取失败: {e}")

# 示例调用
extract_audio_from_video('input.mp4', 'output.mp3')

总结

通过 ffmpeg 和 ffmpeg-python 库,可以轻松实现各种音视频格式的转换。无论是单个文件的格式转换,还是批量转换文件夹中的音视频文件,ffmpeg 都提供了丰富的功能和灵活的接口。通过合理使用这些功能,可以大大提高音视频处理的效率和效果。

相关文档

视频处理的利器,ffmpeg-python库详解与应用示例
官方中文文档
ffmpeg-python库的github地址
ffmpeg安装教程(windows版)
ffmpeg-python中文文档系列1多的可以在主页找
python-ffmpeg 英文文档

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

创建删除文件夹、文件(pathlib 模块)

NEWER

python 获取 mac 地址

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

  • 安装 ffmpeg 和 ffmpeg-python
  • 使用 ffmpeg-python 进行音视频格式转换
    • 示例:视频格式转换(MP4 转 AVI)
    • 示例:音频格式转换(MP3 转 WAV)
    • 批量音视频格式转换
  • 高级选项
    • 转换并调整视频参数
    • 提取视频中的音频
  • 总结
  • 相关文档

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy