企业网站建设都能做哪些工作,网络教育平台登录入口,建设工程安全管理中心网站,网页版视频如何下载自用工具#xff0c;检查下载的音乐是否有损坏 或 下载不完整
使用方法#xff0c;把 in_dir r’D:\158首无损珍藏版’ 改成你自己的音乐文件夹路径 如果发现文件有损坏#xff0c;则会在命令行打印错误文件的路径
注意#xff0c;要求 ffmpeg 命令可以直接在命令行调用…自用工具检查下载的音乐是否有损坏 或 下载不完整
使用方法把 in_dir r’D:\158首无损珍藏版’ 改成你自己的音乐文件夹路径 如果发现文件有损坏则会在命令行打印错误文件的路径
注意要求 ffmpeg 命令可以直接在命令行调用
实现原理使用 ffmpeg 解码时会在 stderr 打印错误信息的特性检测 stderr 里面是否有失败相关的关键字从而判断媒体文件是否损坏
import os
from glob import glob
import subprocess
import localein_dir rD:\158首无损珍藏版audio_exts (.wav, .flac, .mp3, .wma, .ogg, .m4a, .ape, .opus, .aac, .mka)def is_bad_file(file):p subprocess.Popen(fffmpeg -i {file} -v error -f null -, stdoutsubprocess.PIPE, stderrsubprocess.PIPE)err_text p.stderr.read().decode(locale.getpreferredencoding()).lower()is_bad Falsefor bad_text in [error, failed, illegal]:if bad_text in err_text:is_bad Truereturn is_badfor file in glob(f{in_dir}/**/*.*, recursiveTrue):ext os.path.splitext(file)[1].lower()if ext not in audio_exts:continueif is_bad_file(file):print(fFound bad audio. {file})