Проблема с Python pydub: невозможно повторно загрузить wav-файл после того, как он был перекодирован с помощью ffpeg [SiPython

Программы на Python
Anonymous
Проблема с Python pydub: невозможно повторно загрузить wav-файл после того, как он был перекодирован с помощью ffpeg [Si

Сообщение Anonymous »

Решено Майклом Батчером. Обновленный код теперь находится в репозитории в фиксированной ветке. Спасибо!
У меня есть скрипт Python, который считывает все файлы *.wav в каталоге и сохраняет их в папке под названием «вывод» после регулировки их громкости.
lower.py:

Код: Выделить всё

import os
from pydub import AudioSegment as ass

# get the current working directory
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)

https://github.com/tibberous/ChangeWavVolume/tree/fixed
Проблема в том (и мне потребовалось ДОЛГОЕ время, чтобы понять out), после того как файлы выводятся один раз, если вы попытаетесь прочитать их снова с помощью AudioSegment::from_wav(file), ffmpeg выдаст ошибку, сообщающую, что не может декодировать файл. Выходные файлы WAV воспроизводятся в проигрывателе Windows Media, и даже звук в них настроен, но я предполагаю, что какая-то ошибка либо в самих данных файла, либо в заголовках файлов.
Я поставил код на github. Проверьте ветку «исправлено».
Кстати, я только что все установил, поэтому у меня должны быть все текущие версии. Я использую диспетчер пакетов Chocolatey для Windows 10. Прочтите README.txt (в разработке), чтобы узнать, как я настраиваю среду разработки.

Код: Выделить всё

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


Я открыл wav-файлы, созданные программой, с помощью Media Player, VLC Media Player и Audacity, думая, что они могут выдать ошибку, но единственное, что не может прочитать экспортированные wav-файлы, - это сценарий, который их создал!

Подробнее здесь: https://stackoverflow.com/questions/783 ... d-by-ffpeg

Вернуться в «Python»