Возможно ли преобразование без потерь из файла WAV Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels, s32, 1152 kb/s в файл 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" } ]

2 ответа2

1

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

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

0

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

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

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

ffmpeg -i out.wav output.flac

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .