FFmpeg — как установить выходной размер_образца

Попытка создать простой проигрыватель командной строки для файлов .dsf (аудио DSD) и вывести его на устройство alsa, поддерживающее частоту дискретизации до 24 бит 192 кГц. Следующая команда почти работает и воспроизводит трек. Глядя на выделенный жирным шрифтом текст ниже, входной файл dsf преобразуется в 24-битный/192 кГц, но выходной файл затем усекается до 16-битного 192 кГц (pcm_s16le, т. е. 16-битный прямой порядок байтов).

ffmpeg -i '01 - Sweet Georgia Brown.dsf' -f alsa hw:0,0

После отображения баннера ffmpeg и метаданных песни (тегов) вот результат, выделенный жирным шрифтом:

Продолжительность: 00:05:14.83, начало: 0.000000, битрейт: 9234 кбит/с Поток #0:0: Аудио: flac, 192000 Гц, стерео, s32 (24 бит)
Отображение потока : Поток #0:0 -> #0:0 (flac (исходный) -> pcm_s16le (исходный))
Нажмите [q], чтобы остановить, [?] для справки
Вывод #0, также, в 'hw:0,0':

Поскольку я могу воспроизводить этот и многие другие треки в полном разрешении с помощью другого проигрывателя (foobar2000), кажется, что в кодировщике, который является частью FFmpeg, может быть опция: Lavf57.83.100. Я не могу найти информацию ни в одной из документации FFmpeg, которая помогла бы . Пытался найти параметры в FFplay и даже предположил, используя другие параметры FFmpeg, как в этом примере.
ffmpeg -sample_fmt s24 -i '01 - Sweet Georgia Brown.dsf' -f alsa hw:0,0 ***** те же результаты.

Я застрял. Какие-либо предложения?

Среда: Linux Mint 19.2, 64-битная, звуковая карта ASUS Xonar STXii.


person DennisJ    schedule 22.12.2019    source источник


Ответы (1)


У каждого выходного формата или устройства есть кодировщик по умолчанию, зарегистрированный для каждого типа носителя, который он принимает. ALSA принимает звук, а кодировщик по умолчанию — 16-битный PCM со знаком.

Вы можете изменить кодировщик, указав его.

ffmpeg -i '01 - Sweet Georgia Brown.dsf' -c:a pcm_s24le -f alsa hw:0,0
person Gyan    schedule 23.12.2019
comment
ДА! Вот так, большое спасибо. Теперь мне нужно вернуться к документам и понять параметр -c:a. Я проголосовал за ваш ответ, он говорит мне, что новички могут проголосовать, но пока я не наберу репутацию выше 15, он не будет отображаться, но все равно будет учитываться. - person DennisJ; 23.12.2019
comment
Вот собственно текст: Спасибо за отзыв! Голоса, отданные теми, у кого репутация менее 15, записываются, но не изменяют публично отображаемый результат публикации. - person DennisJ; 23.12.2019