Без потерь конвертация из WAV 24bit в FLAC

825
Narthe

Возможно ли преобразование без потерь из файла Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels, s32, 1152 kb/sWAV в файл WAV?

Я попытался с помощью ffmpeg: ffmpeg -y -i KEEP_01.wav -acodec flac output.flac но я получаю это предупреждение: Conversion will not be lossless. Incompatible sample format 's32' for codec 'flac', auto-selecting format 's16'

Я также использовал sox, но у меня не было предупреждения, поэтому я не знаю, было ли преобразование без потерь или нет.

Также я не совсем понимаю разницу между sample_format и bits_per_sample в моем выводе ffprobe:

"streams": [ { "index": 0, "codec_name": "pcm_s24le", "codec_long_name": "PCM signed 24-bit little-endian", "codec_type": "audio", "codec_time_base": "1/48000", "codec_tag_string": "[1][0][0][0]", "codec_tag": "0x0001", "sample_fmt": "s32", "sample_rate": "48000", "channels": 1, "bits_per_sample": 24, "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/48000", "duration": "0.810667", "bit_rate": "1152000" } ]

0
[Формат FLAC может предоставить представление для вашего образца] (https://en.wikipedia.org/wiki/FLAC). Это просто вопрос поиска правильного инструмента. Вы рассматривали VLC? Run CMD 7 лет назад 0
Нет, я не рассматривал VLC, могу ли я сделать то же самое с ним? Narthe 7 лет назад 0

2 ответа на вопрос

1
Narthe

Я понял, что использую старую версию ffmpeg.

Я тестировал с более свежим, и он работал нормально.

Этот комментарий добавляет намного больше вопросов. 7 лет назад 0
@FleetCommand Как так? Вот что решило проблему ОП; была некоторая ошибка или неподдерживаемая функция в старой версии. slhck 7 лет назад 0
@slhck Этот ответ написан ОП! Следовательно, я думаю, что для него нет ничего неясного. 7 лет назад 0
@FleetCommand Вы сказали «Этот комментарий добавляет гораздо больше вопросов» - я не понимаю, как. Это не комментарий; это пост, в котором ОП отвечает на свой вопрос. slhck 7 лет назад 0
0
Gyan

Ваш PCM представляет собой 24-битные сэмплы в 32-битном хранилище, но WAV, похоже, не пометил это правильно.

Попробуйте эти два шага:

ffmpeg -i KEEP_01.wav -c copy out.wav  ffmpeg -i out.wav output.flac 

Кодер FLAC FFmpeg кодирует только в 16 или 24-битные форматы семплов. Последний хранится как 32-битный, как и ваш ввод.

То же предупреждение с этой дополнительной опцией. Как вы думаете, мой оригинальный файл WAV плохо закодирован? Narthe 7 лет назад 0
Попробуйте отредактировать cmds. Gyan 7 лет назад 0
То же предупреждение = P Narthe 7 лет назад 0
Загрузите небольшую часть WAV. Gyan 7 лет назад 0
https://www.dropbox.com/s/g0tqm8estxk55nm/in.wav?dl=1 Narthe 7 лет назад 0
Преобразует нормально с вашей оригинальной команды. Сравнил ли MD5 на декодированном FLAC с PCM. https://www.datafilehost.com/d/65c6855f Обновите свой ffmpeg. Gyan 7 лет назад 0
Использование более свежей версии ffmpeg помогло. Я доверял нашему ИТ-отделу и использовал сборку ffmpeg с 2012 года, которая находилась в папке с именем «ffmpeg-latest». В любом случае, спасибо ! Narthe 7 лет назад 0
Должен ли я удалить свой пост или пометить его как решенный, так как проблема на самом деле не актуальна? Narthe 7 лет назад 0
Оставь это. Может помочь другим, сталкивающимся с той же ошибкой. Gyan 7 лет назад 0
@Narthe Вы должны ответить на свой вопрос, нажав кнопку ниже. Кроме того, в следующий раз, пожалуйста, включите полный, неразрезанный вывод командной строки в свой вопрос, чтобы устранение неполадок стало проще для других. slhck 7 лет назад 0