Forums -> Работа с видео и аудио -> Тестирование нового контейнера z.flac
| Full Version

Narval
Контейнер состоит из файла flac с прошитыми тегами и архива с доп. материалами в формате zip, объеденённых в 1м файле. Распознаётся большинством плееров как обычный flac. Для распаковки доп. материалов необходимо переименовать z.flac в zip.

Текущий формат контейнера:
1) flac файл с прошитыми коврами и тегами. Степень сжатия до 5 (для совместимости с аппаратными декодерами).
Формат ковров: желательно jpeg до 500 кб
Формат тегов: ogg_tag
2) zip архив с доп. материалами.
Формат архива: zip, без сжатия, созданный оригинальным архиватором компании Info - Zip (zip, pkzip)
Все названия файлов и содержимое текстовых файлов в кодировке UTF-8

Создание контейнера в Unix подобных ОС (Linux, BSD...):
1) Делаем 2 файла: flac с прошитыми коврами и тегами и zip, без сжатия, с доп. материалами
2) Объединяем их командой: cat "file_name.flac" "file_name.zip" > file_name.zip.flac
3) Исправляем смещение zip архива командой: zip -F file_name.zip.flac --out file_name.z.flac

Создание контейнера в Windows:
Нужна помощь. Знаю как, нет времени. :help:

Задачи тестирования:
1) Разработать окончательный формат (кодировки, формат тегов, названия...и т.д.)
2) Создать основные инструменты для работы с контейнером (скрипты, руководства)

Скрипт для Linux:
Скрипт для автоматической перепаковки iso.wv в z.flac (beta 4)
Синтаксис: sh zconv.sh in_dir out_dir (необходимо указывать полные пути, они не должны содержать пробелов, если пути не указаны используется текущая папка)
Вместо sh можно использовать bash (немного замедляет скорость перепаковки доп. материалов).

Пример релиза:
Т9 - Вдох-Выдох (ссылка пока не работает, будет время, перезалью)
Почему Т9? Получено разрешение продюссера группы на использование этого альбома для тестирования z.flac, + большое колисество русских букв в cue

Буду благодарен за любую помощь в разарботке. Контейнер придумал для собственных нужд, доделаю в любом случае, но без помощи сообщества на это уйдёт много времени. Формат контейнера, скрипты, программы и все материалы распостраняются под лицензией GPLv3 http://ru.wikipedia.org/wiki/GPL. Отдельные части проекта могут быть выпущены под лицензией BSD http://ru.wikipedia.org/wiki/BSD_License, для включения в проприетарное ПО, если это будет способствовать популяризации формата.
Просьба: не выносите формат за пределы форума, до появления 1й стабильной версии.
Alexsor
user posted image О... Интересно... FLAC...
Dudtsyn
T9

Это для наглядности, пример готового релиза. Narval Я ничего не напутал?
Narval
QUOTE (Dudtsyn @ 14-04-2010, 20:51)
[URL='http://00.dl1b-narod.yandex.ru/disk/19726841000/hf417e189b1aef2c4a71bb6753105f2d1/T9 - Vdoh-Vydoh.z.flac']T9[/URL]

Это для наглядности, образец готового рипа. Narval Я ничего не напутал?
Всё правильно. Как только разберусь в чём проблема, поправлю 1й пост
Dudtsyn
Да, и сам качаю, для посмотреть, что там к чему.


обсуждение
Vlady304
QUOTE (Narval @ 14-04-2010, 13:54)
в чём проблема
Антиспам в действии.
Первые 10 постов ссылки работать не будут.
Dudtsyn
Запутался между постами,
.... так где флак спрятал?
Ну где-то же он должен быть, я не понял просто
Гордый
QUOTE (Narval @ 14-04-2010, 19:15)
Большое спасибо пользователям: LF_ и жабЁныш за советы и помощь в тестировании.
Теперь понятно где это LF_ пропадает. Тестирует. :diablo: :actu:
Narval
QUOTE (Dudtsyn @ 14-04-2010, 22:02)
Запутался между постами,
.... так где флак спрятал?
Ну где-то же он должен быть, я не понял просто
Отдельно flac файла нет, есть 1 общий файл состоящий из флака и пристыкованного к нему зипа. Чтобы получить отдельно флак, надо зип отстыковывать. Но это не требуется, большинство программ зип просто не замечают.
Dudtsyn
Получается, переименовал в архив и флак исчез, ....
Narval
Переименовал назад и флак появился ;) Только не надо менять содержимое архива, например Total Commander, при этом, flac убивает.
Dudtsyn
Да, я уже попробовал. Ну извлекается доп содержимое так же как из исо, только смущает отсутствие флака :laugh:
Narval
Видишь флак? Нет. А он есть :laugh: А каким архиватором ты распаковываешь? Встроенный в XP и WinRAR точно работают, 7zip точно не работает и не будет. Интересуют другие.
Dudtsyn
Во, я про винрар почти забыл. Сейчас посмотрю. А так все время Тотал командер.

Да собственно и нечего смотреть, понятно.
win32
Попробовал проиграть на ритмбоксе. Плеер видит название группы и альбома, но отображаеться единым файлом без названий песен.. :-( ну и в консольном плеере тоже: цельный файл. Без названия треков и переключения между ними это неинтересно. :) Ну еще минус сам flac невидим, хотя той-же саt можно все вернуть как было. Честно говоря не понял, в чем преимущество такого контейнера? :wink:
Narval
QUOTE (win32 @ 14-04-2010, 23:13)
Попробовал проиграть на ритмбоксе. Плеер видит название группы и альбома, но отображаеться единым файлом без названий песен.. :-( ну и в консольном плеере тоже: цельный файл. Без названия треков и переключения между ними это неинтересно. :) Ну еще минус сам flac невидим, хотя той-же саt можно все вернуть как было. Честно говоря не понял, в чем преимущество такого контейнера? :wink:
Ритмбокс пока не поддерживает вшитые cue. Как и многие плееры. Но процесс идёт, под Linux уже есть несколько плееров с поддержкой cue (qmmp, новая версия Audacious2...). Если сравнивать с потрековым флаком, то преимущества те-же, что у iso.wv (Раздача и хранение 1м файлом), но тут на любителя. Если сравнивать с iso.wv, то это поддержка большинством плееров, хотя далеко не все читают треки из cue, но прогресс не стоит на месте. Для iso.wv я знаю только 2 плеера которые его корректно проигрывают и просвета не видно. И ещё, допы из зипа можно распаковать встроенным архиватором. Для iso надо WinRAR ставить. Флак единственный lossless кодек выпускаемый под GPL, это гарантирует дальнейшее распостранение формата. Конкурентов, к сожалению, пока нет.
Dudtsyn
Насчет железной поддержки. Видел в магазине HD медиа-плейер с поддержкой wv, даже удивился
Narval
QUOTE (Dudtsyn @ 14-04-2010, 23:34)
Насчет железной поддержки. Видел в магазине HD медиа-плейер с поддержкой wv, даже удивился
Поддержка wv бывает, а вот iso.wv... Не от хорошей жизни я стал что-то изобретать. Доходит до смешного. Чтобы слушать iso.wv на своём медиаплеере с Mythubuntu, мне пришлось ставить фубар через эмулятор wine и переделывать его интерфейс, чтобы на телеке нормально смотрелся и пультом управлялся :(
Narval
Добавил в 1й пост синтаксис скрипта
win32
Narval
Да, я в курсе этой проблемы. В свое время Audacious у меня стоял, треки он показывает, правда с длительностью и отображение времени у него беда... вторую версию не пробовал. qmmp собран на qt, не хочеться мусорить в системе собраной на glib. :) Очень рад, что появляються новые идеи,
может с отладкой и временем z.flac станет одним из мультиплатформенных контейнеров для хранении музыки в Linux и не только! ;) :punk:
Narval
QUOTE (win32 @ 14-04-2010, 23:53)
Narval
Да, я в курсе этой проблемы. В свое время Audacious у меня стоял, треки он показывает, правда с длительностью и отображение времени у него беда... вторую версию не пробовал. qmmp собран на qt, не хочеться мусорить в системе собраной на glib. :) Очень рад, что появляються новые идеи,
может с отладкой и временем z.flac станет одним из мультиплатформенных контейнеров для хранении музыки в Linux и не только! ;) :punk:
qmmp не много за собой тащит, несколько мегов qtшных библиотек. Есть ещё FALF (Fack Amarock Love Foobar :D: ), но он в зачаточном состоянии. z.flac уже в момент появления стал мультиплатформенным контейнером, большинство людей будут проигрывать flac не подозревая, что там какой-то zip есть. И только группа избранных с Нетлаба... :punk:
Alexsor
ОС: W7 Ult v.6.1, build 7600, x64.
Объект: указанный в заглавном сообщении тестовый файл-контейнер <*.z.flac>.
Некоторые предварительные результаты:

foobar2000 v1.0.2.1 - OK
AIMP2 v2.61, build 560 - OK
Оба программных проигрывателя открыли тестовый <*.z.flac> с разбиением на звуковые дорожки.

CUETools v2.0.7 - OK
CUETools спокойно произвёл конвертацию в WVimage+CUEsheet, а также легко преобразовал файл-контейнер <*.z.flac> в mp3tracks.

ImgBurn v2.5.1.0 - OK
Burrrn v1.14 beta2 - OK
Обе программы записи создали CD-DA - "напрямую" из файла-контейнера <*.z.flac>.

auCDtect Task Manager v1.5.0B1, build 1.5.0.1 - OK
Программа успешно проверила <*.z.flac> и построила спектральные характеристики в графическом виде для тестового файла-контейнера <*.z.flac>.

Mp3tag v2.46a - OK
Читает tag-и в <*.z.flac>.

С изменённым на <*.zip> расширением файла содержимое контейнера <*.z.flac> просто открывается в проводнике Windows - OK! (! -, но без "основного" файла <*.flac>).

Во всех вышеперечисленных программах обработка тестового файла-контейнера начиналась после обычного "перетаскивания" на иконку любой из программ самого файла <*.z.flac> .
user posted image Narval, по-моему неплохо для начала...
жабЁныш
кстати, кто-нибудь знает как определить кодировку названия файла в Виндозе?
Narval
to Alexsor Огромное спасибо !!! Ради таких тестов я и создавал этот топик. Очень помогает в разработке.
to жабЁныш Я таких программ не знаю. В принципе это не проблема, проанализировать несколько байт из названия файла. Опытные Web программеры всегда на глаз определяют )))) Подобрать сочетание кодировок, чтобы всё отображалось "из коробки", для меня первоочередная задача. Может кто знает, 7ка умеет отображать имена в UTF-8? XP не умеет.
FiL
как это не умеет? а в чем-же она тогда держит имена, если не в utf8?
Narval
QUOTE (FiL @ 15-04-2010, 21:21)
как это не умеет? а в чем-же она тогда держит имена, если не в utf8?
CP1251
FiL
QUOTE (Narval @ 15-04-2010, 14:44)
QUOTE (FiL @ 15-04-2010, 21:21)
как это не умеет? а в чем-же она тогда держит имена, если не в utf8?
CP1251
в CP1251 очень тяжело писать на иврите, например. Или, как в моем случае, на литовском. Но ХР вполне справляется. Имена файлов на разных языках вполне себе.
жабЁныш
FiL, т.е. в названии файла ты можешь использовать национальные символы из нескольких кодовых страниц: спасибо-ačiu.txt? в семёре точно можно,а вот в хрюхе уже не помню.
FiL
QUOTE (жабЁныш @ 15-04-2010, 17:59)
FiL, т.е. в названии файла ты можешь использовать национальные символы из нескольких кодовых страниц: спасибо-ačiu.txt? в семёре точно можно,а вот в хрюхе уже не помню.
в одном файле не пробовал. В разных - точно да. На ХРюше в том числе.
Narval
В дальнейшей разработке скриптов решил перейти на Bash. Совсем тяжко в sh без массивов и под переменные выделяемой памяти не хватает.
Плюсы:
1) Больше возможностей (массивы и т.д.)
2) Можно хранить все названия в переменных, без создания временных файлов
3) Есть эмулятор под Windows (Cygwin). Сейчас тестирую.
Минусы:
1) Небольшое замедление при обработке тегов (1-2 секунды)
2) По умолчанию установлен не во все UNIX-Like системы.
FiL
ну flac и wvunpack тоже не установлены по умолчанию...

Но я вообще на скрипт посмотрел и... ну в общем только за
rm --recursive "$temp_dir"
где "$temp_dir" не тобой создан в предыдущем шаге уже убивать надо. Мало-ли какой тебе out_dir дали и что там уже в temp лежит.

Ну и остальное как-то много предполагает не проверяя...
Narval
to Fil
В начале скрипта сделана проверка на наличие необходимых пакетов. В Ubuntu предлагает установить автоматически.

out_dir="$2"
temp_dir="$out_dir"/temp_iso.wv_to_flac
rm --recursive "$temp_dir"
mkdir "$out_dir" "$temp_dir"
rm --recursive "$temp_dir"
Автоматически стирается только папка temp_iso.wv_to_flac. Специально выбрал такое название, возможность наличия папки с таким названием у пользователя стремится к 0.

Спасибо за критику. Если не сложно, напишите другие замечания по коду.

Может кто знает почему команда:
echo ""`awk 'NR == 5' "$temp_dir"/album_data`" - "`awk 'NR == 6' "$temp_dir"/album_data`""
выводит только дефис и 6ю строку?
FiL
хмм... в той версии, на которую висит ссылка выше по топику, название временной папки покороче... :)
temp_dir="$out_dir"/ftemp

Проверка делается... на самом деле можно также проверять наличие баша и его тоже ставить. Я просто к тому, что требование баша - это не такой, чтобы минус. Особенно учитывая количество линуксов.

---
потому, что пятая пустая? :)
у меня выводит и пятую и шестую....

Narval
Название папки теперь длинное. На самом деле я уже процентов 30 кода переписал, как будет более-менее стабильная версия, выложу Beta2. Проверку баша конечно добавлю, просто руки ещё не дошли. Всеми силами цеплялся за sh, но надоело костыли выдумывать...
Когда я создаю файл вручную, у меня то-же показывает и 5ю и 6ю. А вот когда анализирую cue, вырезаю нужное sedом и вывожу результат в этот файл...только 6я. Уже месяц бьюсь с этим. Столкнулся, когда писал скрипт для преобразования в потрековый флак, zflac ещё даже в проекте не было.
Narval
Частично решил проблему с sed. В конец каждой строки автоматически добавлялся символ переноса (0D), поэтому не работала команда echo "$PERFORMER - $TITLE". Добавил в конвеер sed 's/\x0D$//, для удаления. Костыль, но работает) Может кто знает как заставить команду echo "$LINE" | sed 's/"//g' | sed 's/PERFORMER //g не добавлять символ переноса?
Сейчас работаю над преобразованием cue.
Алгоритм:
1) Ищем в корне и папках *.cue и заменяем iso.wv на z.flac (поддерживается iso.wv и wv.iso.wv)
2)Если нет wv.cue, создаём *.flac.cue из *.cue для wav.
3)Приводим названия всех *.cue к виду "PERFORMER - TITLE [YEAR](.flac).cue"
Замечания, дополнения?

Если у кого-нибудь есть возможность, проверьте тестовый релиз из 1го поста на плеерах и смартфонах. Интересует: корректная перемотка в конце альбома (последние 2 минуты) и отображение обложки.
lowsky
несколько вопросов, может быть, глупых:

зачем двойное расширение z.flac? разве недостаточно просто flac?

QUOTE (Narval @ 14-04-2010, 20:15)
Формат архива: zip, без сжатия, созданный оригинальным архиватором компании Info - Zip (zip, pkzip)

а раром нельзя эти зипы создавать и почему? и нельзя ли вообще вместо зипа рар цеплять?

QUOTE (Narval @ 14-04-2010, 22:30)
Переименовал назад и флак появился ;) Только не надо менять содержимое архива, например Total Commander, при этом, flac убивает.

не предполагается ли в будущем усовершенствовать формат таким образом, чтобы изменение архива было возможно без отстыковки его от флака?
Alexsor
user posted image
...

MediaInfo 0.7.31 - OK
Получаем информацию из файла-контейнера <*.z.flac>.
SPOILER ("Информация MediaInfo из <*.z.flac>")

...
Narval
Alexsor :)
lowsky
QUOTE
зачем двойное расширение z.flac? разве недостаточно просто flac?
Чтобы сразу было понятно, что там доп. материалы есть.
QUOTE
а раром нельзя эти зипы создавать и почему?
Создать скорее всего можно (не пробовал), но после объединения нужно выставить правильный отступ в зипе, равный размеру флака. Я не знаю других архиваторов, кроме Info - Zip (zip, pkzip), которы это умеют делать. Кстати, есть WZip, свободный аналог WinZip для Windows. FTP работает не стабильно, поищите зеркала. Если удасться найти подробное описание формата Zip, включу в скрипт исправление отступа, во время объединения файлов.
QUOTE
и нельзя ли вообще вместо зипа рар цеплять?
Нет. Rar не поддерживает отступ. И ещё Rar закрытый и менее распространённый формат. А с учётом того, что архив, скорее всего, будем добавлять без сжатия, Zip идеальный вариант.
QUOTE
не предполагается ли в будущем усовершенствовать формат таким образом, чтобы изменение архива было возможно без отстыковки его от флака?
Попробуйте не Total Commanderом, возможно WZip или pkzip корректно перепакуют. Zflac тут не при чём, дело в неполной поддержке zip сторонними архиваторами.
Narval
Загрузил zconv.sh beta 2.
Основные изменения:
1) Новый алгоритм перепаковки доп материалов (обработка cue, log).
2) Добавлена проверка существования и размера выходного файла.
3) Многочисленные исправления, дополнения и оптимизации кода.
4) Корректно работает в sh и bash.
Буду очень благодарен за помощь в тестировании :help:
Dudtsyn
Еще бы алгоритм упаковки в Виндовозе подробнее. Или я пропустил?
Narval
 Dudtsyn
Я, пока, только для Linux, разработал алгоритм. Если есть возможность, можете присоединиться к тестированию скрипта в cygwin. Насколько я знаю, у жабЁныша получилось создать контейнер под Windows. Как только появится стабильный алгоритм, добавлю на 1ю стрницу.
Dudtsyn
Не, я уж не буду с Пингвинчиком заморачиваться, нет на это времени. Подожду, не горит.
lowsky
я бы тоже под виндой попробовал
Zalexi
Narval
На Яндексе: "Закончился срок хранения файла".
Выложи, пожалуйста, еще раз.
Вся музыка в iso.wv, сам перешел на Убунту, надоедает постоянно конвертировать во flac.
Narval
Выложил Скрипт работает стабильно, но я бы не рекомендовал его для "промышленного" использования, т.к. он недостаточно протестирован.
На данный момент известны 2 проблемы:
1) Недостаточно проработанный алгоритм выбора картинки для обложки альбома. (Работаю над этим)
2) Подвисания при перемотке в конце альбома. (Виноват флак, но вот куда копать не знаю)
Zalexi
Narval
Некорректно выводит жанр, что-то типа:
CODE
--tag=GENRE=-5
Foobar2000 видит одним файлом без разбития на треки.
Переименовал z.flac в zip - через Nautilus и Менеджер архивов не смог открыть - ошибка:
CODE
7-Zip 9.04 beta  Copyright © 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=ru_RU.utf8,Utf16=on,HugeFiles=on,4 CPUs)

Error: /home/z/tmp/Manowar - [2007] Gods Of War.[NL+0802].zip: Can not open file as archive

Errors: 1
Через Dolphin открыл, но папка пустая,
Только через Krusader и Ark открылось нормально.
Но еще такой вопрос: если убрать "wv" и оставить только "iso" в файле "iso.wv", то внутри находятся кроме файлов с картинками и т.д. еще и файлы "cue" и "wv", а если переименовать "z.flac" в "zip", то внутри муз.файла нет, почему так?
Narval
to Zalexi
QUOTE
Некорректно выводит жанр, что-то типа:
QUOTE
Foobar2000 видит одним файлом без разбития на треки.
Это в 1м альбоме или всегда? Поподробнее пожалуйста, у меня таких проблем не возникало. Для Linux есть очень хороший плеер DeadBeef, рекомендую.

QUOTE
Переименовал z.flac в zip - через Nautilus и Менеджер архивов не смог открыть - ошибка:

Именно по этой причине я хочу отказаться от использования 7zip. Он не полностью поддерживает формат zip (не умеет пропускать данные перед архивом). При инсталяции в Ubuntu он заменяет собой стандартный zip в менеджере архивов и Наутилусе. Наверное где-то в конфиге Гнома можно исправить. Я пока не решил как бороться с этой проблемой.

QUOTE
Но еще такой вопрос: если убрать "wv" и оставить только "iso" в файле "iso.wv", то внутри находятся кроме файлов с картинками и т.д. еще и файлы "cue" и "wv", а если переименовать "z.flac" в "zip", то внутри муз.файла нет, почему так?
Потому что архив с доп. материалами добавляется в конец flac файла. См. описание формата в 1м посте.

Если не сложно протестируйте скрипт на нескольких альбомах, желательно с русскими буквами. Обратите пожалуйста внимание на работу перемотки в конце альбома.
Zalexi
Narval
Протестил несколько файлов. Скрипт ругался на русскую букву "с" и отсутствие лога. Лога не было, так что это нормально.
SPOILER!
Снова в некоторых файлах проблема с записью-отображением тегов "Жанр", "Год"
В DeaDBeef всё отобразилось хорошо. В Qmmp - частично, но это проблема самой проги, т.к. и iso.wv не отображались корректно.
Но вот что выдал мне Foobar2000:
user posted image

Про перемотку не знаю, просто нет времени.
Пользуюсь Фубаром собственной сборки, т.к. все что мне надо - от конвертирования до исправления тегов и т.д. - там есть, типа, всё-в-одном.
Narval
to Zalexi
Налицо какая-то проблема с кодировками. Пытался воспроизвести ситуацию, тэги отображаются отлично (оригинальный Foobar под Wine, DeadBeef). У меня уже была подобная проблема с буквой с, но в текстовых документах. Подробностей не помню, кажется дело было в преобразовании CP1251 в UTF-8. Я думаю, что эта проблема исчезнет, когда я реализую преобразование названий файлов в UTF-8.
На какой файловой системе у вас лежит /home? iso.wv скачивали сразу в Ubuntu, или сначала на windows раздел? Вы редактировали тэги в iso.wv?
Огромное спасибо за помощь в тестировании :)
Zalexi
Narval
/home на ext4.
.iso.wv хранятся на ntfs в Windows.
.iso.wv создавались мной с помощью CUETools и CUEBeautifier. т.е. теги прописывались этими программами.
Narval
to Zalexi
Дело точно в кодировках. С iso.wv созданными в Linux проблем нет. Буду разбираться :help:
Zalexi
2 Narval
А как ты создавал .iso.wv в Линуксе? Есть аналог CUETools и CUEBeautifier, чтобы всю начинку вовнутрь запихнуть + прописать теги + вставить обложку?
Narval
to Zalexi
Аналогов нет. Создавал вручную для тестов (cdparanoia+wavpack+mkisofs+easytag). Попробуй под Wine, возможно заработают.
Narval
Исправил проблему с буквой с. Дело в некорректно формируемом названии файла:

cue_out="`dirname "$cue_current"`/"$performer" - "$title" [$date].cue"
cue_file_tag="FILE \""$file_name".wav\" WAVE"
sed "/FILE/ c $cue_file_tag" temp.cue > "$cue_out"

Заменил на:

sed "/FILE/ c $cue_file_tag" temp.cue 1> temp1.cue 2> /dev/null
mv temp1.cue "$cue_out" 2> /dev/null

Почему так происходит, не знаю. Видимо, при выводе через stdout, что-то съезжает в UTF-8 у sed. Будет время, разберусь и отправлю разработчикам. Этот патч войдёт в beta 3 (планирую выпустить до конца августа).
Вопросы к сообществу:
1) Добавлять проверку лога на предмет правильности рипа и отсутствия ошибок? В случае обнаружения выводить сообщение.
2) Добавлять ли "Создан с помошью zconv" в тег COMMENT ?
3) Может кто знает как в цикле for in у казать все подкаталоги? (или только * */* */*/* и т.д на нужную глубину)
Narval
Beta 3
Исправлено:
1) Проблема с перемоткой в последних песнях альбома (seekpoint)
2) Проблема с буквой "с" в русских названиях
3) Foobar некорректно открывал прошитые cue в UTF-8 созданные в notepad (удаление BOM)
Добавлено:
1) Переработан интерфейс, добавлена статистика
2) Преобразование названий файлов в UTF-8
3) Извлечение log и cue из тегов iso.wv
4) Изменён алгоритм работы с log файлами
5) Изменён алгоритм выбора обложки альбома
6) Множество мелких исправлений и оптимизаций
Narval
to Zalexi
QUOTE
Сконвертировал. Ошибок не заметил. Но! Переименовал готовый файл в zip. Открыл, а там муз.файла нет. Хотя по объему папки должен быть. Захочу я, к примеру, используя cue выбрать некоторые треки, а cue куда будет обращаться, к какому муз.файлу?
Его там и не может быть. Zip архив пристыкован в конец flac файла, они не пресекаются. Но это очень хорошо, т.к. все программы умеющие работать с flac, без проблем работают с zflac. Вариант, когда flac находится внутри zip не будет воспроизводится на большинстве плееров (Foobar может), т.к. формат flac не предусматривает наличие каких либо сторонних данных в начале файла. Если интересно могу расписать более подробно.
Если какая-либо программа не умеет брать cue из тэга, можно взять *.zflac.cue из zip архива, переименовать музыкальный файл назад в z.flac, к нему и будет обращаться cue. zconv.sh автоматом создаёт *.zflac.cue в папке с допами и прописывает в нём z.flac файл.
Я долго с этим возился, но вроде получилось: скрипт умеет приводить в божеский вид неправильно созданные релизы. Например, если релизёр не положил в папку с допами cue файл, но прошил его в тег, скрипт создаст 2 файла: Performer - Title [Year].cue и Performer - Title [Year].zflac.cue. В которах соответственно пропишет *.wav и *.z.flac. Тоже самое с log файлом.

QUOTE
k3b видит сконвертированный файл ОДНИМ файлом, а не потреково.
Большей частью для меня важно именно то, чтобы иметь возможность записывать аудио-диски с одиночного файла, иметь возможность выбирать треки для записи.
Иначе, вроде, как и смысла нет в такой конвертации. Плееры под Линукс поддерживают формат iso.wv (DeaDBeef к примеру), а также и Foobar запустился под wine. Да и размер немного увеличивается, по сравнению с iso.wv.
А k3b вообще умеет открывать cue из тегов? Он iso.wv умеет записывать без распаковки? К сожалению не могу его потестить. У меня Гном, а он половину КДЕ за собой тянет. Я, пока, не знаю проги для Linux, которая умеет напрямую записывать из iso.wv или z.flac, но я и не искал.
Что касается размера: в скрипте по умолчанию сжатие = 5, это примерно соответствует режиму "standart" у WavePack. Можно выставить 6 или 7 (настраивается в начале скрипта).

QUOTE
А так - понравилось, быстро работает скрипт. И инфо-сообщения в тему с просьбой обратить внимание на проблемный файл (отсутствовал лог).
Неплохо было бы еще как-то упростить запуск скрипта, к примеру, иметь возможность повесить его на кнопку (чтобы он сам автоматом подхватывал директорию), т.е. я нахожусь в папке TEMP и из нее запускаю скрипт. А также возможность выбирать файлы для конвертации, а не все, которые находятся в директории.
Запуск скрипта без аргументов из текущей папки сделаю, давно хотел, руки не доходили.
Выбор отдельных файлов будет только в версии 0.2 т.к. 0.1 изначально нацелена и оптимизирована для работы с папками.
Zalexi
2 Narval
QUOTE
А k3b вообще умеет открывать cue из тегов? Он iso.wv умеет записывать без распаковки?
iso.wv он вообще записывать не умеет. А вот умеет ли открывать - не знаю. Я высказал пожелание, надеясь, а вдруг возможно. Сам на Убунте недавно.
QUOTE
К сожалению не могу его потестить. У меня Гном, а он половину КДЕ за собой тянет.
На мой взгляд, это какое-то предубеждение, причём явно устаревшее. При нынешних объёмах памяти - звучит как-то несерьезно. У жены на нетбуке стоит и Убунту и очень много прог под KDE, торможения, дефицита памяти не замечено! Я не говорю уже о своих 4-х ядрах и 3 ТБ :D:
Так что ставь k3b и не переживай. Но если у тебя Pentium 386 с 64 МБ ОЗУ и винтом на 1 ГБ, то лучше не рискуй. :wink:
QUOTE
Я, пока, не знаю проги для Linux, которая умеет напрямую записывать из iso.wv или z.flac, но я и не искал.
А вот знать бы такую прогу, чтобы понимала и писАла...
Narval
to Zalexi
QUOTE
iso.wv он вообще записывать не умеет. А вот умеет ли открывать - не знаю. Я высказал пожелание, надеясь, а вдруг возможно. А вот знать бы такую прогу, чтобы понимала и писАла...
Посмотрел описание k3b, про встроенные cue там ни слова. Brasero тоже не умеет. Поискал что-то ещё, не нашёл :( Видимо придётся скриптик написать и GUI к нему. Скрипт не проблема, но я никогда ничего не писал отличное от sh скриптов...
QUOTE
На мой взгляд, это какое-то предубеждение, причём явно устаревшее.
Возможно и устаревшее...я свой первый Mandrake установил в конце 90х :cool: Да и не люблю попусту загаживать систему. Плюс раздел / крутится на btrfs с компрессией и лишние 150 мегов могут отрицательно сказаться на производительности. А ещё одну виртуалку заводить не хочется и так 2 уже: с ХР и OpenBSD.
Zalexi
QUOTE
Видимо придётся скриптик написать и GUI к нему.
Вот это интересно!
Зачем мне всё это нужно.
Моя муз.коллекция хранится в формате iso.wv (пережимаю с cuetools и CUEBeautifer).
Для прослушивания использую Foobar2000 собственной сборки (там уже всё настроено для прослушивания, конвертирования и т.д.).
Для записи использую k3b (записываю и DVD и CD).
Неудобство во время записи - отсутствие возможности выбора отдельных треков с альбомов.
Думал, что k3b сможет записывать и выбирать потреково с одиночного файла z.flac.
Так как iso.wv еще широко не поддерживается, принималось за возможность конвертировать в z.flac для послледующей нормальной работы и использования в Linux. Хранить в z.flac не выгодно - размер (даже с уровнем 8) всё равно получается больше, чем в iso.wv.
Мое мнение.
1. Сделать конвертацию из iso.wv в z.flac, что практически уже сделано.
2. Сделать возможность записи, с выбором потреково, формата z.flac. Чем писать - не принципиально (Brasero, k3b, etc.). Как это будет осуществляться - посредством скрипта, GUI, терминала - также не принципиально.
Narval
Я тут, вечерком, скриптик наваял. Zrecord.sh называется. Умеет записывать iso.wv и z.flac на AUDIO-CD.
Синтаксис: sh zrecord.sh 'file'
Смещение не умеет. Дружит не со всеми русскими альбомами. Остальное вроде работает. По умолчанию стоит режим dummy, эмуляция записи без включения лазера (отключается в начале скрипта). Выбирает наименьшую из поддерживаемых скоростей записи. Если приводов несколько, в скрипте надо прописать нужный.
В общем, вставляем болванку, запускаем скрипт и через несколько минут идём слушать на стационаре :punk:

to Zalexi
QUOTE
Так как iso.wv еще широко не поддерживается, принималось за возможность конвертировать в z.flac для послледующей нормальной работы и использования в Linux. Хранить в z.flac не выгодно - размер (даже с уровнем 8) всё равно получается больше, чем в iso.wv.
iso.wv, к сожалению, не ещё, а вообще не поддерживается. Сдвигов нет и не предвидится (пара плееров и добавление поддержки в официальный WavePack, за несколько лет...это не серьёзно).
Насчёт размера: я точные тесты не проводил, но знаю, что разница небольшая. Даже если накопить пару терабайт музыки, лишние 40-50 гигов погоды не сделают.
Alexsor
user posted image
...

MusicBee v1.2.3909 Beta - OK
Программный проигрыватель и каталогизатор открыл тестовый файл <*.z.flac> с разделением на звуковые дорожки.
SPOILER ("Файл <*.z.flac> в MusicBee v1.2.3909 Beta")

...
P.S.: MusicBee по-плечу и файлы <*wv.iso.wv>. Развиваясь таким темпом, он скоро может начать наступать на пятки foobar-у.
А для кого-то он и сейчас уже подходящий.
SPOILER ("MusicBee пока недозрелый, но поспевает быстро...")
...
Zalexi
2 Alexsor
Формат z.flac как бы с упором на Linux задумывался. Так что MusicBee пока не очень интересен, т.к он только под Windows.
Narval
to Zalexi
Ну я бы не был столь категоричным. Больше 90% человек в мире предпочитают Windows, и пренебрегать этим было-бы просто глупо (я вовсю использую виндовый Foobar под wine). Буду очень рад если появится конкурент, монополия не есть хорошо.
to all
Большое спасибо Alexsor и Zalexi за помощь в тестировании.
Я уже знаю алгоритм создания zflac под windows, осталось реализовать его в скрипте. Zflac задумывался как кроссплатформенный контейнер, толчком к созданию послужило то, что мой n810 не проигрывал iso.wv.
Попробуйте Ubuntu 10.04, вы будете приятно удививлены :wink:
Zalexi
2 Narval
Про монополию согласен. Жаль, что под Линукс нет конкуренции у Фубара.
И версия сегодня Убунты будет уже 10.10 :wink:
Alexsor
user posted image DeaDBeeF - Ultimate Music Player For GNU/Linux - release 0.4.2 is out - 2010/10/15 - get it!
Narval
А у меня DeadBeef с Ланчпада автоматом обновился :cool: В этой версии была заявлена поддержка обложек из APEv2. Но не срослось...во 1х поддержка APEv2 для wv по умолчанию выключена, во вторых открывает только 10-15% картинок (видимо умеет только jpeg и строго определённого размера). Хорошо, что с last.fm умеет картинки загружать. Исправить это, добавить конвертер и будет вообще отличный плеер.
Narval
Случаянно наткнулся на один очень интересный плеер http://github.com/tulskiy/musique/wiki/Screenshots. Как найду deb, установлю и потестирую. Не хочется из-за компиляции 1-го плеера ставить Sun JDK и Open JDK.
Гордый
QUOTE (Narval @ 23-10-2010, 21:35)
Случаянно наткнулся на один очень интересный плеер http://github.com/tulskiy/musique/wiki/Screenshots. Как найду deb, установлю и потестирую. Не хочется из-за компиляции 1-го плеера ставить Sun JDK и Open JDK.
Кто-то сорсы от фубара сбондил... :diablo:
Narval
Beta 4

Добавлено:
1) Поддержка национальных кодировок для преобразования в UTF-8 (задаются в начале скрипта)
2) Расширенная статистика: размер iso.wv и z.flac, коэффициент сжатия для iso.wv, сводная таблица сжатия в зависимости от жанра для iso.wv. :punk:
3) Автоматическая загрузка с last.fm front_pic и artist_pic (если нет в iso.wv, по умолчанию включена)
4) Режим запуска без указания папок (используется текущая папка, можно указать 1 папку)
5) Поддержка png и tiff при извлечении из APEv2 тегов iso.wv
6) Пропуск существующего файла, даже если он переименован в zip
7) Регулировка приоритета ресурсоёмких процессов (7z, zip, flac, wvunpack. По умолчанию nice 19)
8) Множество мелких исправлений и оптимизаций
Alexsor
user posted image Колоссы-производители мультимедийных приложений не забывают о <*.z.flac> в новых версиях своих программ.

SPOILER ("ArcSoft TotalMedia® Theatre 5 (The all-in-one media player for PCs)")
~

Narval
Т.е. он показывает песни как главы?
Alexsor
QUOTE (Narval @ 04-12-2010, 00:19)
Т.е. он показывает песни как главы?
user posted image Да. Главы - песни (звуковые дорожки (треки)); заголовки - имена файлов <*.z.flac>.
SPOILER!
~
<Edited>
P.S.: Нет: главы - это не песни, это временной промежуток примерно равный 3 минутам 54 секундам (при общей продолжительности файла <T9 - Vdoh-Vydoh.z.flac> получилось 20 глав, что случайно оказалось равно количеству треков в файле-контейнере).
user posted image
Zalexi
2Narval
Упс. А у меня отказывается работать скрипт.
CODE
$ zconv Joe\ Dassin\ -\ \[1995\]\ Greatest\ Hits.\[NL+0802\].iso.wv

Скрипт для перепаковки iso.wv в z.flac. Версия 0.1 Beta 4
Narval netlab.e2k.ru, http://code.google.com/p/zflac/
Синтаксис: sh zconv.sh "/home/alex/wv" "/home/alex/flac"

Коэффициент сжатия flac (0-8) = 5
Папка назначения не указана. Использую исходную: Joe Dassin - [1995] Greatest Hits.[NL+0802].iso.wv
В папке Joe Dassin - [1995] Greatest Hits.[NL+0802].iso.wv отсутствуют файлы iso.wv

Переименовываю в формат *.iso - все файлы на месте.
В чем может быть причина?
Zalexi
*к предыдущему сообщению*
Запустил. Но это неудобно! Он конвертирует файлы ТОЛЬКО в папке.
У меня в папке лежит несколько десятков файлов формата iso.wv.
Хочу конвертировать только 1 (2,5,..).
Или мне конвертировать ВСЮ папку, или выбирать нужные, создавать временную папку, переносить туда выбранное, конвертировать, переносить результат обратно.
Слишком много лишних движений.
По крайней мере сделать возможность выбора: один или папку.

Теперь замечания и пожелания.
1. Неплохо было бы добавить для отображения прогресс-бар и индикатор оставшегося времени. Вот кодирую, а ничего не происходит, и не пойму или зависло, или медленно кодирует.

2. Очень неудобно каждый раз прописывать ПОЛНЫЙ путь к папке!
Скрипт у меня исполняемый и запускается просто: zconv /путь/к/папке/
Но к примеру. Файлы для конвертации: /home/user/music/tmp/, я нахожусь в папке music. В терминале должен ввести: zconv /tmp/ и начать конвертировать. А приходится вводить ПОЛНЫЙ путь: zconv /home/user/music/tmp/.

3. Конвертирование закончено. Вывод информации. Сообщение: "Обратите внимание на файл № 1". Обратил, посмотрел, заценил - красивый такой файл, очень органично смотрится в моей папке вместе с другими файлами :)
Если выводится предупреждение, то неплохо бы указать на ЧТО конкретно обратить внимание (выбор неполадок не так уж и велик) и желательно другим цветом.
Не думаю, что статистика среднего сжатия по жанру кому-то интересна. Общая - ещё возможно.

4. Не знаю есть ли сайты с обложками для русских исполнителей, но если есть, то пусть и с них тоже качает, определяя по наличию кириллицы в тегах.

Вроде все.

Вот неплохо бы еще как-то решить упаковку "муз.файл+cue+covers+info" в формат z.flac.

P.S. Ни Rythmbox, ни Banshee, ни Clementine не разбили созданные файлы по трекам :( Хорошо хоть обложки показали.
Вопрос: можно разбить файл по трекам, но так, чтобы прописать внутри каждого файла обложку?
Narval
to Zalexi
Версия 0.1 изначально писалась для преобразования всей коллекции iso.wv в z.flac (ну и для отработки основных механизмов преобразования музыкальных контейнеров). Т.е. указал папки и оставил на пол дня. Именно поэтому не стал делать прогресс бар, преобразование отдельных файлов и т.п.

QUOTE
Но к примеру. Файлы для конвертации: /home/user/music/tmp/, я нахожусь в папке music. В терминале должен ввести: zconv /tmp/ и начать конвертировать. А приходится вводить ПОЛНЫЙ путь: zconv /home/user/music/tmp/.
Попробуй: zconv "./tmp/" - я не пробовал, но должно работать.
Полные пути это 100% гарантия правильного указания папок.

QUOTE
Если выводится предупреждение, то неплохо бы указать на ЧТО конкретно обратить внимание (выбор неполадок не так уж и велик) и желательно другим цветом.
Не думаю, что статистика среднего сжатия по жанру кому-то интересна. Общая - ещё возможно.
Все неполадки выводятся во время кодирования файла, отмотать терминал и посмотреть не так сложно. Если файлов будет много, вывод неполадок в итоговой статистике только запутает пользователей. Я не знаю как в Ubuntu, стандартными средствами, делать вывод другим цветом. Статистику можно отключить в настройках.

QUOTE
Не знаю есть ли сайты с обложками для русских исполнителей
Сайты есть, но у них нет API. Одним словом: нет.

Т.к. версия 0.1 Beta 4 достаточно стабильно работает и в ней реализовано всё что планировалось, развитие ветки прекращаю. Буду вносить мелкие поправки и исправлять серьёзные ошибки. К лету выпущу релиз.

P.S. Сейчас пишу версию 0.2. Она изначально модульная. Это позволяет достаточно легко добавлять новые форматы и возможности. Сейчас процесс на начальной стадии, но уже работает преобразование из rar, zip и iso (кодеки ape, wv и flac) в zflac. Преобразует отдельные файлы или папки. Планирую добавить вывод в потрековый flac. Как появится более менее стабильная версия выложу alpha 1.



Zalexi
2Narval
Благодарю.
Успехов!
Alexsor
"Делёж" звуковых дорожек: <AIMP v2.61 Build 583> vs <AIMP v3.00 Build 810 Beta 1>.
user posted image <--- *.z.flac, но user posted image ---> *.iso.wv.
SPOILER!
...
Narval
Beta... исправят к релизу.
Alexsor
...
user posted image Album Player 2.6 (APlayer).
SPOILER ("<*.z.flac> & <Album Player 2.6>")
...
Гордый
QUOTE (Alexsor @ 22-06-2011, 20:02)
...
user posted image Album Player 2.6 (APlayer).
SPOILER ("<*.z.flac> & <Album Player 2.6>")

...
*.iso.wv не хочет проигрывать. Да и проигрывает он фубару во всём. :pig:
Alexsor
QUOTE (Гордый @ 22-06-2011, 21:19)

*.iso.wv не хочет проигрывать. Да и проигрывает он фубару во всём. :pig:
user posted image
SPOILER ("Nena - Made in Germany.(2009).{NL+}.iso.wv")
~
Гордый
QUOTE (Alexsor @ 22-06-2011, 21:30)
QUOTE (Гордый @ 22-06-2011, 21:19)
*.iso.wv не хочет проигрывать. Да и проигрывает он фубару во всём. :pig:
user posted image
SPOILER ("Nena - Made in Germany.(2009).{NL+}.iso.wv")

~
Ухты! А как ты добавил? У меня виснет всё-время... :(
Alexsor
QUOTE (Гордый @ 22-06-2011, 23:18)
Ухты! А как ты добавил? У меня виснет всё-время... :(

- загрузил Album Player 2.6;
- извлёк файлы проигрывателя из архива на рабочий стол в папку <APlayer>;
- скопировал в указанную папку файл-контейнер <Nena - Made in Germany.(2009).[NL+].iso.wv>;
- запустил <Album Player>;
- перенёс скопированный файл-контейнер в окно запущенного проигрывателя;
- нажал на кнопку <Play> в проигрывателе;
- услышал из динамиков акустических систем композицию в исполнении "NenЫ", сопровождённую показом сканированных изображений (вшитых в *.iso.wv (и/или *.z.flac)).
- всё - user posted image
P.S.: W7 Ult v.6.1, build 7601: SP 1, x64.