Обсуждение: Цифровой звук и lossless: что это, зачем это, и с чем его едят

Страницы :   Пред.  1, 2, 3 ... , 54, 55, 56  След.
Ответить
 

j7n

Старожил

Стаж: 18 лет 6 месяцев

Сообщений: 809

j7n · 15-Май-25 12:19 (4 месяца 12 дней назад)

Может быть ffmpeg легче внедрить и уже есть под неё готовый код, так как программа используется для многих целей. Если кодировка идёт на сервере, они могут не желать тратить время на --best. MD5 может не быть. Из Amazon Music файлы очень кривые получаются; не отображается даже продолжительность.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 15-Май-25 15:06 (спустя 2 часа 47 мин., ред. 15-Май-25 15:06)

Gizmo64 писал(а):
87783183Это неудобно. Можно в foobar2000 проверять MD5
Там и проверяю еще скриптом в другую вкладку копирую дубликаты. Еще мне сделали скрипт, которые копируют дубликаты, кроме одного, все которые можно удалять, оставляя по одному дубликату на диске. Хорошо бы знать синтаксис SQLite чтобы самому делать скрипты.
У qobuz нет метаданных MD5, поэтому нужно кодировать flac->flac
Качалки ничего не пережимают. Они берут готовый поток и теги по выбору.
[Профиль]  [ЛС] 

Gizmo64

Старожил

Стаж: 17 лет

Сообщений: 797

Gizmo64 · 15-Май-25 16:00 (спустя 54 мин.)

Vivianus писал(а):
87783702У qobuz нет метаданных MD5, поэтому нужно кодировать flac->flac
Качалки ничего не пережимают. Они берут готовый поток и теги по выбору.
Так там исходные файлы в flac? Отдает поток в flac?
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 15-Май-25 16:17 (спустя 17 мин., ред. 15-Май-25 16:17)

Gizmo64 писал(а):
87783906Отдает поток в flac?
Получается так, в Apple контейнер m4a с AAC/Alac
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 16-Май-25 11:17 (спустя 18 часов, ред. 16-Май-25 11:17)

Vivianus
киньте куда-нибудь на яндекс диск примерчик файла, если не сложно, чтобы можно было его скачать и потыкать в него изощрёнными методами.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 16-Май-25 15:40 (спустя 4 часа)

ferromuz
https://disk.yandex.ru/d/wIQTfou7NppL8w
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 16-Май-25 16:31 (спустя 50 мин.)

Vivianus
Ну это же нативный FLAC 24 бит 44.1kHz. Откуда у вас появилась гипотеза о контейнере M4A?
MD5 действительно нет, metaflac показывает нули. Метаданные заполнены питонячим Мутагеном, может им же и контрольную сумму обнуляют. flac -8f *.flac ситуацию вполне исправляет и достаточно быстро. Здесь парни тоже жалуются на этот Qobuz.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 16-Май-25 16:47 (спустя 16 мин.)

ferromuz
ferromuz писал(а):
87787796flac -8f *.flac
Не понятно, как использовать скрипт. Его кинуть в папку с питоном, а что дальше?
Когда нет MD5, то никогда не узнаешь, поврежден ли аудиопоток. В foobar2000 можно проверять эти суммы.
Это ALAC https://disk.yandex.ru/d/xqxzTYCEEeHooQ
AAC в apple music обычно стандартно 256кбпс но встречался и 320кбпс.
[Профиль]  [ЛС] 

заинька457

Стаж: 4 года 3 месяца

Сообщений: 188


заинька457 · 17-Май-25 05:00 (спустя 12 часов)

Vivianus писал(а):
87787844Когда нет MD5, то никогда не узнаешь, поврежден ли аудиопоток.
MD5 в метаданных FLAC не может быть гарантией, что поток не повреждён, ибо файл могли повредить уже после упаковки или во время скачивания. в вашем файле, кстати, MD5 великолепно считается, даже при отсутствии соответствующей записи в метаданных.
скрытый текст
[Профиль]  [ЛС] 

j7n

Старожил

Стаж: 18 лет 6 месяцев

Сообщений: 809

j7n · 17-Май-25 05:05 (спустя 5 мин.)

Каждый кадр также содержит контрольную сумму. MD5 можно посчитать, но нельзя сверить, если она заранее не записана.
[Профиль]  [ЛС] 

заинька457

Стаж: 4 года 3 месяца

Сообщений: 188


заинька457 · 17-Май-25 05:13 (спустя 8 мин.)

j7n писал(а):
87789834MD5 можно посчитать, но нельзя сверить, если она заранее не записана.
Мы же говорим о форматах без потери данных. Зачем что-то сверять, если поток (данные) из файла распаковывается без ошибок и предупреждений? lossless... гарантирует, что из файла распаковывается исходный поток, который в этот файл был упакован.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 17-Май-25 07:17 (спустя 2 часа 3 мин., ред. 17-Май-25 07:17)

заинька457 писал(а):
87789845Зачем что-то сверять, если поток (данные) из файла распаковывается без ошибок и предупреждений
Попадались flac с битой md5
заинька457 писал(а):
87789829MD5 великолепно считается, даже при отсутствии соответствующей записи в метаданных
Это программа подсчета MD5, как в foobar2000? В моем случае запись необходима именно в метаданных, где нули.
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 17-Май-25 10:57 (спустя 3 часа, ред. 17-Май-25 10:57)

Vivianus писал(а):
87789957
заинька457 писал(а):
87789845Зачем что-то сверять, если поток (данные) из файла распаковывается без ошибок и предупреждений
Попадались flac с битой md5
уточните формулировку, пожалуйста. что значит "битая"? MD5 - это всего лишь рассчитанная по определённому алгоритму hash сумма.
Vivianus писал(а):
87789957В моем случае запись необходима именно в метаданных, где нули.
он же вам показал, что после прохода flac -8f filename.flac контрольная сумма появляется в метаданных файла, и она совпадает с посчитанным другой программой значением.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 17-Май-25 11:26 (спустя 28 мин., ред. 17-Май-25 11:26)

ferromuz писал(а):
87790426уточните формулировку, пожалуйста. что значит "битая"? MD5 - это всего лишь рассчитанная по определённому алгоритму hash сумма.
Это когда MD5 в метаданных не совпадает с реальной, рассчитанной в данный момент, MD5. Именно для сверки, а также для определения 100% дубликатов нужна эта информация MD5. У foobar2000 есть утилита, которая расчитывает и записывает эту информацию в тег, ее плюс в том, что можно расчитывать MD5 также для mp3 и других кодеков, но с mp3 есть косяк, бывает, при изменения тегов, потом тот же файл может расчитать другую сумму и будет путаница.
ferromuz писал(а):
87790426он же вам показал, что после прохода flac -8f filename.flac контрольная сумма появляется в метаданных файла
Она должна быть там изначально, после конвертации WAV в flac.
Еще как добавить MF5 в метаданные без перекодирования flac -> flac до конца не понятно. Я понял пробовал запустить скрипт для питона выше батником, не получилось. Вот таким:
cd "C:\Users\Celsus1984\AppData\Local\Programs\Python\Python312"
python.exe MD5.py -c -r "C:\Users\Celsus1984\Downloads"
В самом скрипте указал путь к flac.exe:
FLAC_PROG = "C:\\Program Files (x86)\\foobar2000\\encoders\\flac.exe"
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 17-Май-25 12:52 (спустя 1 час 25 мин.)

Vivianus писал(а):
87790488Это когда MD5 в метаданных не совпадает с реальной, рассчитанной в данный момент, MD5. Именно для сверки, а также для определения 100% дубликатов нужна эта информация MD5.
вам следует уточнить для себя, контрольную сумму чего вы рассчитываете в данный момент. возможны варианты. считать нужно контрольную сумму сырого PCM-потока.
Vivianus писал(а):
87790488У foobar2000 есть утилита, которая расчитывает и записывает эту информацию в тег, ее плюс в том, что можно расчитывать MD5 также для mp3 и других кодеков, но с mp3 есть косяк, бывает, при изменения тегов, потом тот же файл может расчитать другую сумму и будет путаница.
опять обращаю ваше внимание на то, контрольную сумму чего именно вы собираетесь рассчитывать. два варианта... 1. извлеченный из MP3 сырой PCM-поток; 2. чего-то ещё, например, файла в целом. MP3 гарантирует деградацию данных относительно исходного PCM-потока. и рассчитывать для MP3 контрольную сумму вряд ли имеет смысл, ибо она будет зависеть и от используемого декодера, наверно.
Vivianus писал(а):
87790488Еще как добавить MF5 в метаданные без перекодирования flac -> flac до конца не понятно.
по-крайней мере metaflac - нативное средство для редактирования метаданных FLAC такой возможности не предусматривает. Qobuz наверняка подтирает контрольную сумму какой-то собственной библиотекой.
[Профиль]  [ЛС] 

j7n

Старожил

Стаж: 18 лет 6 месяцев

Сообщений: 809

j7n · 17-Май-25 13:07 (спустя 15 мин.)

Если пересжать FLAC любым удобным способом, будут выявлены битые файлы (через другие контрольные суммы) или недокачанные, убран паддинг и разом добавлён MD5. Не надо ничего нового придумывать.
MD5 не следует делать для MP3 и других lossy форматов. Разные версии программ могут внести незначительные отличия в звук, и также возмножно произвольно выбрать длину слова от 16 до 32 бит.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 17-Май-25 15:39 (спустя 2 часа 31 мин., ред. 17-Май-25 15:39)

ferromuz писал(а):
87790836вам следует уточнить для себя, контрольную сумму чего вы рассчитываете в данный момент. возможны варианты. считать нужно контрольную сумму сырого PCM-потока
Декадированного аудиопотока, именно эту сумму показывает MD5 в метаданных после кодирования в FLAC. Плагину foobar2000 foo_audiomd5 все равно какой кодек, она создает md5 сумму декодированного аудиопотока. Также есть возможность снять соответствующую галку и будет сумма недекодированного аудиопотока, но тут я уже не знаю, что это значит.
j7n писал(а):
87790888Если пересжать FLAC любым удобным способом, будут выявлены битые файлы (через другие контрольные суммы) или недокачанные, убран паддинг и разом добавлён MD5. Не надо ничего нового придумывать
Пережимать все FLAC, особенно те что в торрентах, с целью выявить битые нелогично. Есть еще 2 утилиты для проверки целостности: Trader's little helper и FLAC Frontend как альтернатива плагина foo_ui_std (Verifier integrity)в foobar2000
j7n писал(а):
87790888MD5 не следует делать для MP3 и других lossy форматов. Разные версии программ могут внести незначительные отличия в звук, и также возмножно произвольно выбрать длину слова от 16 до 32 бит.
В случае с плагином foo_audiomd5 там такая проблема при использовании его для mp3: https://hydrogenaudio.org/index.php/topic,127222.0.html
Иногда ffmpeg дает сбой в том месте, где заканчивается аудио - и считывает теги, как если бы они были аудио.
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 18-Май-25 05:45 (спустя 14 часов, ред. 18-Май-25 05:45)

Vivianus писал(а):
87791334Иногда ffmpeg дает сбой в том месте, где заканчивается аудио - и считывает теги, как если бы они были аудио.
Во-первых, не стоит рассчитывать на ffmpeg, как на лекарство от всех бед. Он, конечно, классный, но в сути своей является попыткой объять необъятное, а это по определению недостижимо. Для подсчёта контрольной суммы есть специализированные утилиты, им просто нужно отдать сырой PCM поток, и как раз с этой задачей ffmpeg справляется великолепно. Люди опытные используют ffmpeg только как коллекцию декодеров. Экодеры лучше бы использовать нативные.
Во-вторых, у ffmpeg имеется возможность не транслировать метаданные входящего файла при декодировании - -map_metadata -1, если мне не изменяет память.
В-третьих, комбайны, типа foobar, которые к тому же используют в своих недрах другие комбайны, типа ffmpeg, всегда нужно использовать с осторожностью и со знанием дела. Тыкать пальцем в неопределённость, это конечно хороший вызов, но без практического опыта и специальной теоретической подготовки на основе официальной документации разработчиков этих комбайнов, этот вызов обычно остаётся неотвеченными даже при целом сонме многочисленных попыток конкурсанта.
Как-то так... жалуйтесь.
[Профиль]  [ЛС] 

j7n

Старожил

Стаж: 18 лет 6 месяцев

Сообщений: 809

j7n · 18-Май-25 06:30 (спустя 44 мин.)

ffmpeg является видео плеером в первую очередь и у него другие приоритеты. Проблема была в том что разработчик опознал только некоторые виды метаданных, которые были известны ему. Проблема с проигрыванием тега была давным давно во времена Xing encoder, и в 2025 её быть не должно. (У хороших плееров такой проблемы нет.) Алгоритм поиска настоящих звуковых кадров примерно такой: находим начало, читаем размер кадра, следует ли за ним другой кадр, если нет – искать дальше. Вероятность получить фикс в ffmpeg невелика. Сегодня вся музыка поставляется в формат контейнера вроде MP4, и они считают, что так правильно. DTS поддержка там очень кривая.
Я взял пять версий Foobar разных времён и программу mpg123, которая имеет наивысшую точность, и декодированный поток у всех отличился на уровне -90 до -115 dB. Чтобы избежать этой ситуации, плагин Audio MD5 считает сумму сжатых данных. Но оказывается ffmpeg нельзя доверять. Галочка в настройках только "for lossless formats" и на MP3 не влияет.
Кстати в заголовке LAME есть короткая контрольная сумма CRC16 и её можно проверить программой mp3guessenc file.mp3 -r. Вероятность ложного подтверждения где-то 1:65000.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 18-Май-25 07:07 (спустя 36 мин.)

ferromuz писал(а):
87793901Для подсчёта контрольной суммы есть специализированные утилиты
Как называются?
Про сырой поток понятно, попробую использовать его для mp3, если я правильно понял, то вроде как решение проблемы с mp3 и MD5 декодированного аудиопотока в том, чтобы теги были в начале файла версии V2.3 а не V1, надо будет разобраться до конца, чтобы MD5 всегда была одинаковой и не менялась после редактирования тегов. Вероятно, что я подсчитывал файлы с одной версией тегов и после редактирования в mp3tag версия тегов становилась другой и следующий подсчет менялся.
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 18-Май-25 13:54 (спустя 6 часов)

j7n писал(а):
87794001ffmpeg является видео плеером в первую очередь
Не, в первую очередь он является набором аудио и видео декодеров и энкодеров. А плеером в прямом смысле этого слова он вообще не является, но в своём составе имеет выделенный модуль - ffplay называется.
[Профиль]  [ЛС] 

заинька457

Стаж: 4 года 3 месяца

Сообщений: 188


заинька457 · 18-Май-25 14:15 (спустя 20 мин., ред. 18-Май-25 14:15)

Vivianus писал(а):
87790488Еще как добавить MF5 в метаданные без перекодирования flac -> flac до конца не понятно.
Задайтесь вопросом, а какова будет достоверность этих данных, если каждый пользователь по собственному усмотрению станет редактировать контрольную сумму. Контрольная сумма потока подсчитывается и вписывается в метаданные только в процессе кодирования FLAC-файла. Разработчиком формата иное не предусмотрено. Вероятно, я точно не знаю, Mutagen может эту запись редактировать, но это уже чистая отсебятина. И Qobuz, скорее всего, именно этим инструментом контрольную сумму в своих файлах обнуляет. но это не good...
Vivianus писал(а):
87794037
ferromuz писал(а):
87793901Для подсчёта контрольной суммы есть специализированные утилиты
Как называются?
Так и называются... md5sum, sha256sum и так далее по типу контрольной суммы. В каждом линуксе есть из коробки.
ferromuz
не задавайся...
[Профиль]  [ЛС] 

ferromuz

Стаж: 4 года 3 месяца

Сообщений: 109


ferromuz · 18-Май-25 15:35 (спустя 1 час 20 мин.)

заинька457
В отличие от некоторых на букву "З" модели 457, я — белый и пушистый.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 18-Май-25 16:35 (спустя 59 мин., ред. 18-Май-25 16:35)

заинька457 писал(а):
87795199Задайтесь вопросом, а какова будет достоверность этих данных, если каждый пользователь по собственному усмотрению станет редактировать контрольную сумму
Мне нужна сумма в теге для выявления дубликатов среди mp3, в flac она уже есть изначально после кодирования
заинька457 писал(а):
87795199md5sum, sha256sum
Как с их помощью вычислить сумму аудио в mp3, Они же для вычисления общей суммы файлов
[Профиль]  [ЛС] 

j7n

Старожил

Стаж: 18 лет 6 месяцев

Сообщений: 809

j7n · 18-Май-25 17:04 (спустя 29 мин.)

Для дубликатов можно попробoвать посчитать свою "сумму" совмещая: продолжительность, средньюю громкость, пиковый уровень, кодек и другие тех-данные. С crc32() или без него. Это можно сделать в плей-листе в программе Foobar. Отсортировать и группировать по этому значению. Дубликаты будут иметь двух или более строк в группе.
Да, просмотр займёт некоторое время.
скрытый текст
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 18-Май-25 18:53 (спустя 1 час 48 мин., ред. 18-Май-25 18:59)

j7n
Спасибо, крутой способ. Для mp3 работает. А flac почемуто показывает разные цифры:
[Профиль]  [ЛС] 

tamurimantas

Стаж: 18 лет 3 месяца

Сообщений: 618


tamurimantas · 18-Май-25 18:57 (спустя 3 мин.)

Vivianus писал(а):
87795752вычислить сумму аудио в mp3
В mp3 имеет смысл хэш самого сжатого аудио потока. Ибо декодирование зависимо от декодера и априори не приводит к однозначному результату.
Существуют программы поиска дубликатов аудиофайлов, в частности и mp3. Поэтому нет смысла изобретать семиколесный велосипед.
Более того, существуют программы поиска (аудио)дубликатов по т.н. acoustic fingerprints, которые не зависят от формата аудиофайлов.
Vivianus писал(а):
87790488как добавить MF5 в метаданные без перекодирования flac -> flac до конца не понятно.
Подсчет мб сделан с помощью ffmpeg, типа
ffmpeg -i "file.flac" -map 0:a -f md5 md5.txt
добавление полученного md5 во flac можно осуществить из комстроки или, например, подходящим патчером (hacker tool). MD5, насколько я понимаю находится во flac в блоке STREAMINFO, после сигнатуры 66 4C 61 43, начиная с 27-го байта. Все это можно запихать в единый батник и выполнять пакетно.
И да, для любителей питона есть готовые решения, например.
[Профиль]  [ЛС] 

Vivianus

Победитель музыкального конкурса

Стаж: 15 лет 8 месяцев

Сообщений: 6447

Vivianus · 18-Май-25 19:36 (спустя 39 мин., ред. 18-Май-25 19:36)

tamurimantas писал(а):
87796319Существуют программы поиска дубликатов аудиофайлов, в частности и mp3.
Они все кривые и с ужасным интерфейсом. Потом мне нужен именно тег или колока со значением, а не список групп дубликатов в программе. Попробую создавать хеш недекодированного потока для mp3
Скрипт питона надо попробовать, так как перекодировать треки с qobuz иногда долго. Оказывается, пробовал его и не получилось запустить
Разобрался. Действительно, добавляет MD5 довольно быстро, для 4 файлов субьективно быстрее, чем кодировать 4 потоками.
Очень помогают эти скрипты:
скрипт SQLite для foobar2000 добавляет дубликаты FLAC с одинаковым MD5 из активного (выбранного) плейлиста в плейлист "Duplicate tracks""
скрытый текст
Код:
insert into Playlist_Updatable (path, playlist_name)
  select path,
         'Duplicate Tracks'
  from Playlist
  where playlist_index = active_playlist()
            and md5 in (select md5
                  from Playlist
                  where playlist_index = active_playlist()
                  group by md5
                  having count(*)>1
               );
скрипт SQLite для foobar2000 добавляет дубликаты FLAC с одинаковым MD5, кроме одного из активного (выбранного) плейлиста в плейлист "Duplicate tracks" , если удалить все файлы из колонки dublicates с диска, то одна версия дубликата остается на диске и в выбранном плейлисте. Например, было 3 дубликата, 2 копируются в плейлист dublicates, а третий не копируется.
скрытый текст
Код:

INSERT INTO Playlist_Updatable (path, playlist_name)
  SELECT path,
         'Duplicate Tracks'
  FROM (
    SELECT first_value(path) OVER w_md5 first_path,
           count(*) OVER w_md5 track_count,
           path
    FROM Playlist
    where playlist_index = active_playlist()
           and md5 is not null
    WINDOW w_md5 AS (PARTITION BY md5)
  )
  WHERE track_count>1
    AND path<>first_path
Перед этим, после установки плагина SQLite нужно в настройках плеера в вкладке SQLite utilities -> media library table (или playlist table, не помню) нажать кнопку "add defaults"
[Профиль]  [ЛС] 

j7n

Старожил

Стаж: 18 лет 6 месяцев

Сообщений: 809

j7n · 18-Май-25 19:59 (спустя 22 мин.)

Не следует использовать %__tool% как я предлагал на примере. Разные версии lossy энкодера скорее дадут различный пиковый уровень. Это только поверхностная оценка. Потом дубликатов надо поближе рассмотреть и принять решение. Bitrate естественно только для lossy.
%length_seconds_fp% %__codec% %__replaygain_track_gain% %__replaygain_track_peak% %__bitrate% %__channels%
[Профиль]  [ЛС] 

tamurimantas

Стаж: 18 лет 3 месяца

Сообщений: 618


tamurimantas · 18-Май-25 21:46 (спустя 1 час 46 мин.)

Vivianus писал(а):
87796335Они все кривые и с ужасным интерфейсом.
Перечислите их все, если вас не затруднит, поскольку очевидно вы их все уже испытали.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error