从WebM到MP3:利用Python和wxPython提取音乐的魔法

前言

有没有遇到过这样的问题:你有一个包含多首歌曲的WebM视频文件,但你只想提取其中的每一首歌曲,并将它们保存为单独的MP3文件?这听起来可能有些复杂,但借助Python和几个强大的库,这个任务变得异常简单。今天,我将带你一步步实现这个小工具,并且给它取个有趣的名字:“魔法音乐分离器”
C:\pythoncode\new\splitsongfromwebmintomp3.py

准备工作

在开始之前,确保你已经安装了以下Python库:

  • wxPython:用于创建GUI界面。
  • moviepy:用于处理视频文件。
  • pydub:用于音频转换。

你可以通过以下命令安装这些库:

pip install wxPython moviepy pydub

此外,还需要安装并配置ffmpeg,这可以通过以下命令在命令行中测试是否安装正确:

ffmpeg -version

如果看到版本信息,说明ffmpeg已经正确安装。

完整代码:

import wx
import os
import subprocess

class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title='Music Extractor')
        panel = wx.Panel(self)

        self.vbox = wx.BoxSizer(wx.VERTICAL)

        self.file_picker = wx.FilePickerCtrl(panel, message="Choose a webm file")
        self.vbox.Add(self.file_picker, 0, wx.ALL | wx.EXPAND, 5)

        self.dir_picker = wx.DirPickerCtrl(panel, message="Choose a save directory")
        self.vbox.Add(self.dir_picker, 0, wx.ALL | wx.EXPAND, 5)

        self.memo = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(400, 300))
        self.vbox.Add(self.memo, 1, wx.ALL | wx.EXPAND, 5)

        self.extract_button = wx.Button(panel, label='Extract Music')
        self.extract_button.Bind(wx.EVT_BUTTON, self.on_extract)
        self.vbox.Add(self.extract_button, 0, wx.ALL | wx.CENTER, 5)

        panel.SetSizer(self.vbox)
        self.Show()

    def on_extract(self, event):
        webm_path = self.file_picker.GetPath()
        save_dir = self.dir_picker.GetPath()
        memo_content
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值