У меня есть файл M4A, который также преобразуется в файл FLAC. Я хотел бы видеть, если преобразование без потерь, а именно, точно ли вывод в pcm от M4A точно так же, как от декодирования FLAC.
Я предполагаю, что есть способ использовать FFmpeg или Libav для получения некоторого «сырого» вывода и сравнения их?
Смотрите также: http://superuser.com/questions/136514/finding-out-if-a-flac-or-wavpack-audio-file-is-not-originally-encoded-from-a-los
Mechanical snail 11 лет назад
0
2 ответа на вопрос
11
LordNeckbeard
Вы можете использовать md5muxer в ffmpeg для вычисления и печати хеша MD5 всех входных аудио (и видео) кадров без необходимости в промежуточных файлах. В этом примере flac был создан из mp3 (без потерь обычно без рекомендуемой процедуры, но это только демонстрация).
+1 Это хорошо также потому, что полностью исключает проблему метаданных в несжатом файле, которые в противном случае могли бы отличать идентичные аудиофайлы.
a CVn 11 лет назад
2
3
thirtythreeforty
I'd try converting them both to WAV and comparing their checksums.
Compare the md5s produced. If they match, congratulations! Your files contain the same data. If they don't match, post the output of those commands here, and I'll look. Potentially there is a bitrate difference or something (there ought not to be... but there may be, I don't know.)
Note that the ffmpegs will generate comparatively large intermediate files.
Похоже, что размер вывода `ffmpeg -y -i in.m4a -ac 2 -ar 48000 -acodec flac out.flac` отличается от размера` ffmpeg -y -i in.m4a -acodec flac out.flac`. Я понятия не имею, что происходит при преобразовании, а также тонкие параметры. Не могли бы вы немного объяснить?
Determinant 11 лет назад
0
С последней командой md5sum тоже самое.
Determinant 11 лет назад
0
И первая команда скопирована с форума, я думаю, размер файла как-то связан с числом «48000», верно?
Determinant 11 лет назад
0
Ага. Смотрите, `-ar 48000` говорит использовать 48000 выборок в секунду. Если это отличается от количества выборок источника в секунду, ffmpeg интерполирует (вставляет дополнительные значения между ними), и это делает результирующий файл другим. Если вы просто позволите ffmpeg автоматически определять все, он попытается изменить как можно меньше.
thirtythreeforty 11 лет назад
1
Еще один вопрос, является ли wav-файл стандартным необработанным файлом? Я имею в виду, есть ли другие альтернативные форматы, кроме wav в области ПК?
Determinant 11 лет назад
0
Я предполагаю, что есть два хорошо известных несжатых стандарта: WAV и AIFF. AIFF часто используется системами Apple; остальная часть всех использует WAV.
thirtythreeforty 11 лет назад
0
Спасибо! Быстрый и понятный ответ.
Determinant 11 лет назад
0
@ymfoi WAV ** не ** стандарт файлов как таковой. Файлы WAV являются просто контейнерами и поэтому могут содержать разные аудиокодеки. В этом случае это будет звук PCM (с импульсной кодовой модуляцией), который без потерь. Но внутри WAV-файла также могут быть сжатые кодеки: http://en.wikipedia.org/wiki/Wav#WAV_file_compression_codecs_compared
slhck 11 лет назад
5
@slhck Итак, есть ли какие-либо методы для извлечения сырых данных PCM из декодера?
Determinant 11 лет назад
0
@ymfoi FFmpeg по умолчанию выберет 16-битную PCM, так что вы уже получите несжатый, «неизмененный» звук (если только ваш источник не использовал большую битовую глубину, например 32-битную; в этом случае вы можете указать, например, `-c: a pcm_s32le`) ).
slhck 11 лет назад
0
@ Понятно. Могу ли я сказать, что файл WAV, который я получил от FFmpeg, состоит из нескольких фрагментов необработанных данных PCM с некоторой дополнительной информацией, и есть некоторые другие похожие форматы, такие как WAV, например, AIFF и т. Д.?
Determinant 11 лет назад
0
@ymfoi Это правильно. WAV, как и AIFF, - это просто контейнеры, которые действительно хранят так называемые «порции» аудиоданных.
slhck 11 лет назад
0
@slhck Thx ~ Теперь у меня есть более четкое понимание WAV, который был для меня загадкой в течение многих лет.
Determinant 11 лет назад
0
@ спасибо, спасибо. Я забыл провести это различие. Однако в 99% случаев вы увидите, что PCM является единственным форматом потока, который вы видите в контейнере WAV.
thirtythreeforty 11 лет назад
0