Показать полную графическую версию : [решено] Работа с Mp3 файлами
Vovchik1900
08-05-2011, 12:54
Здравствуйте.
Дело вот в чем:
допустим в папке лежат мп3 файлы. Их примерно 10-15 (может больше). В другой папке лежат картинки. Тоже 10-15 (может больше). *.jpg файлы, разные.
В чем задача:
Как сделать программу, чтобы она поочереди добавляла к мп3 файлам картинки. То есть прописывала в тег к мп3 файлу.
Алгоритм примерно такой: к первому мп3, первую картинку---положил в третью папку, ко второму мп3, вторую картинку---положил в третью папку и так далее до конца. Чтобы потом при воспроизведении можно было видеть эту картинку в плеере как обложку диска.
Я нашел команды на С++. Могу дать ссылки. Понимаю, что тут должен быть цикл, но сделать не могу. Вообще можно же такое не только на С++ написать? Помогите пожалуйста с кодом. Если не трудно.
BlackEric
08-05-2011, 18:39
Возьмите готовую программу.
Например посмотрите здесь: http://forum.oszone.net/thread-201713.html
Vovchik1900
08-05-2011, 19:53
Спасибо конечно. Я бы все-таки хотел за одно посмотреть как это работает. В готовом виде. Поэтому и прошу код. А так, да вы правы у меня надо мноого файлов обработать.))
Vovchik1900, поясните, какой из ID3 тэгов будет использоваться для:
добавляла к мп3 файлам картинки. То есть прописывала в тег к мп3 файлу. »
и какие программы для воспроизведения сие понимают.
Vovchik1900
08-05-2011, 20:07
Iska,
Мой медиа плеер на нокии)) А если серьезно, то аимп, винамп, винмедиа плеер. Или я что-то не так понял? Команды для работы с *.jpg файлами нашел в ID3Lib 3.05.
Или я что-то не так понял? »
Не Вы, а я. Потому и спрашиваю. В какой именно тэг:
прописывала в тег к мп3 файлу »
?
Vovchik1900
09-05-2011, 06:37
В какой именно тэг »
Я не знаю как это происходит. Может и не в тег прописывается.
Знаю, что такое как мне надо может делать аимп. Полностью *.jpg файл добавляет к мп3 файлу. Например был мп3 размером 1 мегабайт, а jpg 500 килобайт. В аимпе соединишь и получишь мп3 файл размером 1.5 мегабайт. Я это делал через редактор тегов в аимпе. Поэтому и подумал, что в тег к мп3 файлу прописывается.
А про прогу спрашиваю, потому, что надоело в аимпе много кнопок тыкать. Надо около 1000 мп3 файлов обработать. Положил их в одну папку, картинки в другую, запустил прогу, она их соединила (не знаю как), и все.))
Я не знаю как это происходит. Может и не в тег прописывается.
Знаю, что такое как мне надо может делать аимп. Полностью *.jpg файл добавляет к мп3 файлу. Например был мп3 размером 1 мегабайт, а jpg 500 килобайт. В аимпе соединишь и получишь мп3 файл размером 1.5 мегабайт. Я это делал через редактор тегов в аимпе. Поэтому и подумал, что в тег к мп3 файлу прописывается. »
Хорошо, тогда опишите, как именно Вы это делаете в AIMP.
Vovchik1900
09-05-2011, 16:43
Iska,
В аимпе файлы кидал в плейлист, потом тыкал по файлу и заходил в: информация о файле. Открывался quick tag editor. В нем можно добавить.
Vovchik1900, да не про то уже в третий раз я спрашиваю Вас, а в какой именно тэг добавляете? Назовите его. Скриншот, наконец, сделайте, и обведите поле нужного тэга красной линией. Хоть как-нибудь укажите этот тэг.
Vovchik1900
11-05-2011, 17:33
Iska,
А! вот вы о чем! Не знаю какой тег. А команду нашел вот:
Binary Fields
The last type field that ID3Lib provides support for is a binary field. This holds miscellaneous data that can't be easily described any other way, such a JPEG image.
ID3_Field::Set()
отсюда: http://id3lib.sourceforge.net/id3lib-manual.php
Vovchik1900, в общем и целом я понял, что Вы имели в виду. Теперь я уточню: Вы хотите каким-либо образом программным способом внедрять в тело указанного файла формата mp3 (или любого другого формата, поддерживающего внедрение ID3V2 тэгов) указанный файл изображения в формате jpg. Так?
Vovchik1900
13-05-2011, 05:23
Iska,
Да, вы правы.
Vovchik1900
16-05-2011, 16:28
Iska,
Не обязательноформата mp3 (или любого другого формата, поддерживающего внедрение ID3V2 тэгов) »
хватит только мп3. Блин))) тока щас заметил)))
Vovchik1900, ясно. Со своей стороны могу предложить, например, следующее:
1. Загрузить (http://www.activestate.com/activepython/downloads/thank-you?dl=http://downloads.activestate.com/ActivePython/releases/2.6.6.18/ActivePython-2.6.6.18-win32-x86.msi) и установить ActivePython (http://ru.wikipedia.org/wiki/ActivePython) (я пробовал на версии ActivePython 2.6.6.17, сейчас для загрузки (http://www.activestate.com/activepython/downloads) доступна и версия 2.6.6.18 (http://www.activestate.com/activepython/downloads/thank-you?dl=http://downloads.activestate.com/ActivePython/releases/2.6.6.18/ActivePython-2.6.6.18-win32-x86.msi); 3.x в любом случае не рекомендую, дабы не править скрипты). В дальнейшем предполагается, что установка была произведена в умолчальную папку «C:\Python26».
2. Загрузить (http://eyed3.nicfit.net/releases/eyeD3-0.6.17.tar.gz) и установить модуль eyeD3 (http://eyed3.nicfit.net/). Для установки потребуется предварительно распаковать «eyeD3-0.6.17.tar.gz» в произвольную папку, я взял — «C:\PyModules». Внутри неё после распаковки архива (сгодится и WinRAR, и 7-Zip) должна оказаться папка «eyeD3-0.6.17» из архива со следующим содержимым:
╔═════════════════ C:\PyModules\eyeD3-0.6.17 ═══╤════════╤═════╗
║и Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│24.05.11│02:33║
║├bin │ Папка│02.02.09│07:54║
║├doc │ Папка│02.02.09│07:54║
║├etc │ Папка│24.05.11│02:33║
║├src │ Папка│24.05.11│02:33║
║ acsite m4 │ 7257│02.02.09│07:54║
║ authors │ 316│02.02.09│07:54║
║ ChangeLog │ 15532│02.02.09│07:54║
║ configure │105242│02.02.09│07:54║
║ copying │ 18009│02.02.09│07:54║
║ install │ 9478│02.02.09│07:54║
║ Makefile in │ 5194│02.02.09│07:54║
║ news │ 9738│02.02.09│07:54║
║ readme │ 10097│02.02.09│07:54║
║ README html│ 10956│02.02.09│07:54║
║ setup.py in │ 530│02.02.09│07:54║
║ thanks │ 1586│02.02.09│07:54║
║ todo │ 1458│02.02.09│07:54║
║ │ │ │ ║
║ │ │ │ ║
Далее нужно переименовать следующие файлы:
C:\PyModules\eyeD3-0.6.17\setup.py.in
в:
C:\PyModules\eyeD3-0.6.17\setup.py
и
C:\PyModules\eyeD3-0.6.17\src\eyeD3\__init__.py.in
в:
C:\PyModules\eyeD3-0.6.17\src\eyeD3\__init__.py
После чего установить модуль командой:
C:\Python26\python.exe C:\PyModules\eyeD3-0.6.17\setup.py install
в результате чего в папку:
C:\Python26\Lib\site-packages
будет добавлена папка «eyeD3» со следующим содержимым:
╔════════════ C:\Python26\Lib\site-packages\eyeD3 ═══════╤═════╗
║и Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│24.05.11│02:30║
║ __init__ py │ 1713│02.02.09│07:54║
║ __init__ pyc│ 845│22.05.11│22:23║
║ binfuncs py │ 3558│02.02.09│07:54║
║ binfuncs pyc│ 3102│22.05.11│22:23║
║ frames py │ 85569│02.02.09│07:54║
║ frames pyc│ 63546│24.05.11│02:24║
║ mp3 py │ 28296│02.02.09│07:54║
║ mp3 pyc│ 21655│22.05.11│22:23║
║ tag py │ 66306│02.02.09│07:54║
║ tag pyc│ 55821│22.05.11│22:23║
║ utils py │ 5278│02.02.09│07:54║
║ utils pyc│ 5687│22.05.11│22:23║
║ │ │ │ ║
║ │ │ │ ║
3. Теперь можно попробовать добавить потребный тэг. Сначала я приведу команду целиком, затем попробую расписать отдельные детали. Итак, добавим изображение из файла «C:\Мои проекты\Wallpapers\wallpaper_su.jpg» в тэг ID3v2.3 «Передняя обложка альбома» в аудиофайл «E:\Песочница\0056\ABBA (Eagle).mp3»:
C:\Python26\python.exe C:\PyModules\eyeD3-0.6.17\bin\eyeD3 --no-color -F ` --to-v2.3 --v2 --add-image="C:\Мои проекты\Wallpapers\wallpaper_su.jpg"`FRONT_COVER "E:\Песочница\0056\ABBA (Eagle).mp3"
* «C:\PyModules\eyeD3-0.6.17\bin\eyeD3» — python'овский модуль для работы с командной строкой.
* «--no-color» — параметр, запрещающий добавление в вывод Escape-последовательностей для работы с цветом.
* «-F `» — параметр, меняющий умолчальный разделитель двоеточие («:») множественных полей в атрибутах на гравес («`»), что позволяет указывать полные пути (разбором исходного кода было установлено, что иначе полный путь, например — «C:\Мои проекты\Wallpapers\wallpaper_su.jpg», будет воспринят как два отдельных поля). Разумеется, можно указать свой разделитель.
* «--v2» — внедрение поддерживается только во второй версии тэгов, посему указываем, что будем работать именно со второй версией — ID3v2.x.
* «--to-v2.3» — принудительная конвертация существующих тэгов ID3 в версию ID3v2.3. Вынужденный шаг, сделанный специально для Вас, ибо по умолчанию, при задании потребного параметра «--v2» создаются тэги версии ID3v2.4, а мне не удалось добиться отображения внедрённых обложек данной версии тэгов ни в AIMP2 (несмотря на заявленное:
AIMP v2.61 Build 583 (07.08.2010)
========================================
…
- Исправлено: некорректно читается обложка альбома из ID3v2.4
…
), ни в Windows Media Player (который, возможно, у меня просто старый). ID3v2.4 корректно умеет отображать, например, foobar2000 (http://www.foobar2000.org/). С другой стороны, и он вернулся именно к ID3v2.3 как к основному способу (http://www.foobar2000.org/changelog#section1):
1.1.6
* Improved tag compatibility with other software.
…
o ID3v2.3 tags are now written by default since version 2.4 seems to be widely ignored by software vendors.
…
Так что, смотрите сами именно по Вашим приложениям, какую именно подверсию пользовать — ID3v2.3 или же ID3v2.4.
NB: Изложенное выше не претендует ни на полноту, ни на абсолютную корректность.
Vovchik1900, если Вас устраивает подобный подход — попробуйте и отпишитесь, сработало ли у Вас внедрение изображения на одиночном файле. Тогда будем двигаться дальше.
Vovchik1900
29-05-2011, 02:14
Iska,
Когда устанавливаю eyeD3 , выдает такую ошибку:
Vovchik1900:
1. Ошибка возникает на этом этапе?
C:\Python26\python.exe C:\PyModules\eyeD3-0.6.17\setup.py install
2. Наличествует ли в папке «C:\PyModules\eyeD3-0.6.17» папка «src»?
╔═════════════════ C:\PyModules\eyeD3-0.6.17 ══╤════════╤═02:32
║и Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│29.05.11│02:32║
║├bin │ Папка│24.05.11│02:33║
║├build │ Папка│24.05.11│02:38║
║├doc │ Папка│24.05.11│02:33║
║├etc │ Папка│24.05.11│02:33║
║├src │ Папка│24.05.11│02:33║
║ acsite m4 │ 7257│02.02.09│07:54║
║ authors │ 316│02.02.09│07:54║
║ ChangeLog │ 15532│02.02.09│07:54║
║ configure │105242│02.02.09│07:54║
║ copying │ 18009│02.02.09│07:54║
║ install │ 9478│02.02.09│07:54║
║ Makefile in │ 5194│02.02.09│07:54║
║ news │ 9738│02.02.09│07:54║
║ readme │ 10097│02.02.09│07:54║
║ README html│ 10956│02.02.09│07:54║
║►setup py │ 530│02.02.09│07:54║
║ thanks │ 1586│02.02.09│07:54║
║ todo │ 1458│02.02.09│07:54║
║ │ │ │ ║
║ │ │ │ ║
3. Наличествует ли в папке «C:\PyModules\eyeD3-0.6.17\src» папка «eyeD3»?
╔═══════════════ C:\PyModules\eyeD3-0.6.17\src ╤════════╤═02:37
║и Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│29.05.11│02:37║
║├eyeD3 │ Папка│29.05.11│02:34║
║ │ │ │ ║
║ │ │ │ ║
Vovchik1900
29-05-2011, 05:58
Iska,
1. да. ошибка на этом этапе.
2. и 3. Конечно. все папки на своих местах.
команду
C:\Python26\python.exe C:\PyModules\eyeD3-0.6.17\setup.py install
ввожу в командную строку.
У меня вин7 макс СП1
может я не там прописываю команду или винда тупит?
Vovchik1900, сложно сказать. Я использую Windows XP Professional SP3, доступа к Windows 7 нет — посему, к сожалению, даже не могу попробовать воспроизвести Ваши действия. Здесь: Justin Wishart: Python: eyeD3 Installation on Windows (http://jwwishart.blogspot.com/2011/01/python-eyed3-installation-on-windows.html), например, есть подтверждение работоспособности под Windows 7.
Попробуйте, на всякий случай, попробовать исполнить установку в командной строке, запущенной с повышенными привилегиями. Если не поможет — попробуйте задать вопрос на русскоязычных питоношных форумах:
Портал Python-программистов (http://www.python.su/forum/)
VPF::Python - Форум программистов (http://forum.vingrad.ru/forum/s/f608f8d35d5964946813217cea696b03/python-forum.html)
PyDev: Форум python-разработчиков (http://www.pydev.ru/)
дав ссылку на данную тему.
Vovchik1900
29-05-2011, 10:47
Iska,
вы писали раньше
будет добавлена папка «eyeD3» со следующим содержимым:
« скрыть
Код:
╔════════════ C:\Python26\Lib\site-packages\eyeD3 ═══════╤═════╗
║и Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│24.05.11│02:30║
║ __init__ py │ 1713│02.02.09│07:54║
║ __init__ pyc│ 845│22.05.11│22:23║
║ binfuncs py │ 3558│02.02.09│07:54║
║ binfuncs pyc│ 3102│22.05.11│22:23║
║ frames py │ 85569│02.02.09│07:54║
║ frames pyc│ 63546│24.05.11│02:24║
║ mp3 py │ 28296│02.02.09│07:54║
║ mp3 pyc│ 21655│22.05.11│22:23║
║ tag py │ 66306│02.02.09│07:54║
║ tag pyc│ 55821│22.05.11│22:23║
║ utils py │ 5278│02.02.09│07:54║
║ utils pyc│ 5687│22.05.11│22:23║
║ │ │ │ ║
║ │ │ │ ║
Можно ведь эту папку заархивировать и сюда прикрепить?
Я подумал, что если эти файлы себе положу в C:\Python26\Lib\site-packages\eyeD3 то заработает
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC