Quantcast
Viewing all articles
Browse latest Browse all 14069

Python pydub issue: Can't repoen a wav file after it as been reencoded by ffpeg

I have a python script that reads in all the *.wav files in a directory and saves them in a folder called output after it adjusts their volume.

lower.py:

import osfrom pydub import AudioSegment as ass# get the current working directorycurrent_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)

https://github.com/tibberous/ChangeWavVolume/tree/fixed

The problem is (and this took me a LONG time to figure out), after the files are output once, if you try to read them again with AudioSegment ::from_wav(file), ffmpeg throws an error saying it can't decode the file. The output wav files play in Windows Media Player, and even have their audio adjusted, but I am guessing there somehow an error either in the file data itself or the file headers.

I put the code on github. Checkout the branch 'fixed'.

Btw, I just installed everything, so I should have the current versions of everything. I am using the Chocolatey package manager for Windows 10. Read README.txt (in progress) to see how I setup my dev environment.

Python 3.12.2Chocolatey v2.2.2C:\Users\moren>C:\ProgramData\chocolatey\bin\ffmpegffmpeg 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.100Universal media converter

I opened the wav files the program generated with Media Player, VLC Media Player and Audacity, thinking they might throw an error, but the only thing that can't seem to read the exported wav files is the script that created them!


Viewing all articles
Browse latest Browse all 14069

Trending Articles