一个mp4l转mp3工具

查看 94|回复 9
作者:lj149446   
由于经常需要将mp4转mp3,虽说软件工具比较多,但是还是这个方便,把视屏放在文件所在目录,双击运行就行.附上源代码
from moviepy.editor import *
import os
# 获取当前目录
current_directory = os.getcwd()
# 标志变量,记录是否找到 MP4 文件
found_mp4 = False
try:
    # 遍历当前目录中的所有文件
    for filename in os.listdir(current_directory):
        # 检查是否为 MP4 文件
        if filename.endswith(".mp4"):
            found_mp4 = True  # 找到 MP4 文件
            # 加载 MP4 文件
            video = VideoFileClip(filename)
            
            # 提取音频并保存为 MP3,使用原文件名(去掉扩展名)
            mp3_filename = filename[:-4] + ".mp3"
            video.audio.write_audiofile(mp3_filename)
            
            # 关闭视频文件
            video.close()  # 确保关闭文件
except Exception as e:
    print(f"错误:{e}")
if not found_mp4:
    print("当前目录中不存在 MP4 文件。")
else:
    print("转换完成!")

文件, 工具

matxi   

[Python] 纯文本查看 复制代码from moviepy.editor import *
import os
# 获取当前目录
current_directory = os.getcwd()
# 标志变量,记录是否找到 MP4 文件
found_mp4 = False
try:
    # 遍历当前目录中的所有文件
    for filename in os.listdir(current_directory):
        # 检查是否为 MP4 文件
        if filename.endswith(".mp4"):
            found_mp4 = True  # 找到 MP4 文件
            print(f"正在处理文件: {filename}")
            
            try:
                # 使用 with 语句自动管理资源
                with VideoFileClip(filename) as video:
                    # 检查是否有音频流
                    if video.audio is None:
                        print(f"文件 {filename} 不包含音频,跳过。")
                        continue
                    
                    # 提取音频并保存为 MP3,使用原文件名(去掉扩展名)
                    mp3_filename = filename[:-4] + ".mp3"
                    video.audio.write_audiofile(mp3_filename)
                    print(f"音频已保存为: {mp3_filename}")
            
            except Exception as e:
                print(f"处理文件 {filename} 时出错: {e}")
   
except Exception as e:
    print(f"遍历目录时出错:{e}")
if not found_mp4:
    print("当前目录中不存在 MP4 文件。")
else:
    print("所有文件处理完成!")
做了一些改进
laos   

用'转' 不大贴切~应该是从视频文件提取音频
lcg2014   

3楼专业
用ffmpeg,一条命令就行
szluyang   

已收藏。
ljm57   

谢谢,下载备用
Marken888   

感谢源码分享!
lj149446
OP
  


laos 发表于 2024-10-16 19:19
用'转' 不大贴切~应该是从视频文件提取音频

这倒没注意,反正就是给我mp4,我变成mp3
sunil   

经过确认,这个python库的后端就是ffmpeg。
所以可以直接使用ffmpeg。
[PowerShell] 纯文本查看 复制代码ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3
如果要批量转换当前目录的所有mp4,将下面几行代码保存为bat文件,拷贝到对应目录下,双击执行即可:
[PowerShell] 纯文本查看 复制代码for %%f in (*.mp4) do (
    echo 转换 "%%f" ...
    ffmpeg -i "%%f" -vn -acodec libmp3lame "%%~nf.mp3"
)
pause
liuam428   

收藏了,谢谢。。。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部