吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 812|回复: 12
收起左侧

[Python 原创] 一个mp4l转mp3工具

[复制链接]
lj149446 发表于 2024-10-16 16:51
由于经常需要将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("转换完成!")
企业微信截图_17290686772468.png
企业微信截图_17290686749276.png

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
zhongzhuang + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

matxi 发表于 2024-10-16 19:19
[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 发表于 2024-10-16 19:19
lcg2014 发表于 2024-10-16 19:48
szluyang 发表于 2024-10-16 20:02
已收藏。
ljm57 发表于 2024-10-16 20:29
谢谢,下载备用
Marken888 发表于 2024-10-16 21:03
感谢源码分享!
 楼主| lj149446 发表于 2024-10-17 09:00
laos 发表于 2024-10-16 19:19
用'转' 不大贴切~应该是从视频文件提取音频

这倒没注意,反正就是给我mp4,我变成mp3
sunil 发表于 2024-10-20 07:35
本帖最后由 sunil 于 2024-10-20 07:37 编辑

经过确认,这个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 发表于 2024-10-20 21:02
收藏了,谢谢。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 08:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表