经ffmpeg重编码后无法重新打开WAV文件问题已解决(pydub)
问题已解决致谢
该问题已由Michael Butscher解决,修复后的代码已存入仓库的fixed分支,在此致谢!
原脚本功能与代码
我写了个Python脚本,用来读取目录下所有*.wav文件,调整音量后保存到名为output的文件夹里。脚本文件lower.py内容如下:
import os from pydub import AudioSegment as ass # 获取当前工作目录 current_working_directory = os.getcwd() all_files = os.listdir(); while len(all_files) > 0: file = all_files.pop() song = ass.from_wav(file) song = song - 16 song.export('out\\'+file)
问题现象
导出的WAV文件能在Windows Media Player正常播放,音量也确实调整了,但如果尝试用AudioSegment.from_wav重新读取这些文件,ffmpeg会抛出无法解码的错误。推测是文件数据或头部存在异常。
开发环境信息
我用Windows 10的Chocolatey包管理器安装了最新版相关组件,环境版本信息如下:
Python 3.12.2 Chocolatey v2.2.2 C:\Users\moren>C:\ProgramData\chocolatey\bin\ffmpeg ffmpeg version 7.0-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers built with gcc 13.2.0 (Rev5, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 59. 8.100 / 59. 8.100 libavcodec 61. 3.100 / 61. 3.100 libavformat 61. 1.100 / 61. 1.100 libavdevice 61. 1.100 / 61. 1.100 libavfilter 10. 1.100 / 10. 1.100 libswscale 8. 1.100 / 8. 1.100 libswresample 5. 1.100 / 5. 1.100 libpostproc 58. 1.100 / 58. 1.100 Universal media converter
我试过用Media Player、VLC Media Player和Audacity打开生成的WAV文件,都没异常,唯独生成这些文件的脚本无法读取它们!
内容的提问来源于stack exchange,提问作者Trent Tompkins
相关产品推荐
相关产品推荐

