Копирование файлов с Python на WAV
Я пишу программу, где мне нужно иметь возможность копировать файлы с компакт-диска в формат WAV (или FLAC, но WAV работает нормально). Он должен работать на Windows. Я видел другие ответы, в которых Express Rip и Audio Commander были рекомендованы в качестве инструментов командной строки. Но страница Audio Commander, похоже, больше не существует. И я не очень уверен насчет экспресс-рипа, он кажется немного отрывочным.
Затем они упомянули мутаген для получения метаданных.
У кого-нибудь есть опыт работы с этими утилитами или с этой целью? Я хотел бы иметь возможность копировать CD в WAV, сохранять метаданные, которые там есть, и, если возможно, также проверять архив метаданных на CD Archive.
Кто-нибудь когда-нибудь делал что-то подобное или у меня есть предложения по модулям, утилитам, методам и т. Д., Чтобы заставить меня работать? Даже небольшие примеры помогут. Это примеры копирования компакт-диска с помощью Python или модулей для выполнения задачи.
1 ответ
Возможно, вы захотите взглянуть на PyMedia
PyMedia - это модуль Python для манипуляций с файлами в форматах wav, mp3, ogg, avi, divx, dvd, cdda и др. Это позволяет анализировать, демультиплексировать, мультиплексировать, декодировать и кодировать все поддерживаемые форматы. Он может быть скомпилирован для Windows, Linux и Cygwin.
PyMedia была разработана, чтобы быть действительно простой и гибкой одновременно. Смотрите учебник для примера. Это позволяет вам создавать свои собственные мультимедийные приложения в считанные минуты и настраивать их под свои нужды, используя другие компоненты. Язык Python выбран из-за простой семантики, полного и расширенного набора функций.
Вы также можете использовать это как библиотеку:
С их аудио CD Grabber:
import pymedia.removable.cd as cd
def readTrack(track, offset, bytes):
cd.init()
if cd.getCount() == 0:
print 'There is no cdrom found. Bailing out...'
return 0
c = cd.CD(0)
props = c.getProperties()
if props['type'] != 'AudioCD':
print 'Media in %s has type %s, not AudioCD. Cannot read audio data.' % (c.getName(), props['type'])
return 0
tr0 = c.open(props['titles'][track - 1]['name'])
tr0.seek(offset, cd.SEEK_SET)
return tr0.read(bytes)
Обновление: для доступа к метаданным об аудио CD вы можете использовать PyCDDB lirbary.