赞
踩
bat脚本处理优势就是处理文件占用空间小(1kb左右)、完全免费、简易、速度也挺快。
下载ffmpeg.exe ffmpeg.exe下载网址
!所有的前提!(ffmpeg.exe要么将其所在目录添加到环境变量,要么放在新生成的bat文件同一目录下)
- chcp 65001
-
- @echo off
- setlocal enabledelayedexpansion
-
- for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
- set "year=!dt:~0,4!"
- set "month=!dt:~4,2!"
- set "day=!dt:~6,2!"
-
- set output_folder=%YEAR%_%MONTH%_%DAY%
- if not exist "!output_folder!" mkdir "!output_folder!"
-
- for %%I in (*.m4a) do (
- set "output_file=!output_folder!\%%~nI.mp3"
- ffmpeg -i "%%I" -acodec libmp3lame -q:a 0 "!output_file!"
- )
-
- for %%I in (*.flac *.mp4) do (
- set "output_file=!output_folder!\%%~nI.mp3"
- ffmpeg -i "%%I" -q:a 0 -map a "!output_file!"
- )
-
- endlocal
可以先新建个txt,复制以上代码,然后左上角另存为bat文件。双击即可转换成功。
参数说明:
-i input_file
: 指定输入文件。
-acodec libmp3lame
: 指定音频编解码器为 libmp3lame。
-vn
: 禁用视频流,仅保留音频流。
-aq 0
: 设置音频质量,0 表示最好的质量(可根据需要调整,范围一般是0-9,0 最好,9 最差)。觉得文件太大的话建议设置为-aq 2
output.mp3
: 指定输出文件。
效果图:
使用方法(说明在后面):
1. 程序下载:syfMusicConvert1.1.exe
2. 下载ffmpeg.exe ffmpeg.exe下载网址
3. 程序使用方法:
1、运行main.exe可执行程序
2、输入待转换音乐所在的文件夹
3、到上面输入的文件夹中双击运行新生成的bat文件
4、你可以在bat文件所在的文件夹中找到mp3目录,里面就是生成的mp3文件了
**当然,如果只想着转换一两首就可以不用大费周章下载,下面是可以直接使用的ffmpeg指令:**
m4a转mp3:ffmpeg -i input.m4a -acodec libmp3lame -q:a 2 output.mp3
flac转mp3:ffmpeg -i input.flac -q:a 0 -map a output.mp3
mp4转mp3:ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
详情:见我的Github网址(方便下载exe可执行文件,无需再编译就可以使用。有具体的README说明)
YangFengSu/musictool.iohttps://githubfast.com/YangFengSu/musictool.io当然,使用ffmpeg你还需要下载ffmpeg.exe文件
ffmpeg下载网址:https://jeremylee.sh/bins/
(ffmpeg官网)https://ffmpeg.org/
源码:
- import os
-
-
- def my_input():
- return input('\n---\nPlease enter the destination path.\n请输入待转换的歌曲文件的路径,直接点一下路径栏,把地址复制过来就可以\n地址示例:E:\\最近常用\\temp\\m4a文件夹')
-
-
- if __name__ == '__main__':
- path = my_input()
- while 1:
- try:
- last_list = []
- for i in os.listdir(path):
- try:
- if i.split('.')[-1] == 'm4a':
- last_list.append('ffmpeg -i {} -acodec libmp3lame -q:a 2 \"mp3\\{}.mp3\"'.format(i, i.split('.')[0]))
- elif i.split('.')[-1] == 'flac' or i.split('.')[-1] == 'mp4':
- last_list.append('ffmpeg -i \"{}\" -q:a 0 -map a \"mp3\\{}.mp3\"'.format(i, i.split('.')[0]))
- else:
- continue # 当然可以添加其他文件类型,这里暂时不添加,因为主流就是m4a和flac,补充了mp4
- except IndexError:
- continue # 可能不可分,比如文件夹,那么不管它
-
- if len(last_list) == 0:
- input("There is no song. Enter any key to continue\nfail.\n没有歌曲\n按任意键继续")
- path = my_input()
- continue
-
- save_file_path = path + '\\{}2mp3.bat'.format('music')
- with open(save_file_path, 'w', encoding='ANSI') as f:
- if not os.path.exists(path + '\\mp3'):
- os.mkdir(path + '\\mp3')
- for i in last_list:
- print(i)
- f.write(i)
- f.write('\n\n')
- f.close()
- break_num = input("\nsucceed.\tEnter any key (not null) to continue, or press enter to exit\n请到m4a(或者flac)文件夹中运行bat脚本即可!\n输入任意【非空值】继续,直接回车则退出")
- if break_num == '':
- break
- else:
- path = my_input()
- continue
-
- except FileNotFoundError:
- print('-----\nerror folder.\n系统找不到指定的路径,请检查你输入的路径是否有误\n')
- print('请输入待转换的歌曲文件的路径,直接点一下路径栏,把地址复制过来就可以\n地址示例:E:\\最近常用\\temp\\m4a文件夹')
- path = input()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。