Что: 4c55b5fba23f7cb0d7e7484731a34721d94cab5a
Когда: 2022-06-22 22:26:11+03:00
Темы: multimedia tip
Использую virtual_oss После обновления FFmpeg-а, mpv перестал собираться. Видимо API первого сильно поменялся без обратной совместимости. А я использую очень старый mpv, так как возвращение OSS4 поддержки в нём у меня выдавало сплошные шумы (adbf57283a55d771f4647a1f00e9b6ef336c9bf2). Снова взял последнюю версию mpv из git-а. Обломался из-за того, что оно теперь требует Xpresent, которого у меня нет в Xorg-е. Но, благо, это всего лишь несколько последних коммитов. Откатился чуть назад и... звук в USB наушниках на работе появился! Вернулся домой и снова шумы. А разница в том, что моя домашняя звуковуха переводится в bitperfect режим (acbd6a153fbb4fb375be43d87a2ad055b80681e3). Я вру: там всё же не шумы, а жуткие искажения, что очевидно говорит о разных форматах кодирования звука. Но это я обнаружил не сразу, так как когда поставил WavPack файл, то всё ok, а когда поставил видео файл, то всё стало плохо. Поставил MP3 -- тоже плохо. В выводе mpv заметил что в первом случае он выводит в 16-бит формате, а в двух других в 32-бит, который выдаёт декодер MP3. Добавление --af=format=s16, форсируя выдачу в 16-бит формате, помогло. Но у меня всё равно применяется не совсем 100% bitperfect, а с включёнными vchan-ами OSS-а, которые в идеале бы надо отключать чтобы полностью убрать возможность resampling-а и прочего. Добиться вывода звука без vchan-ов у меня с mpv не вышло. Уверен, что причина в том, что звуковуха, судя по dmesg-у, умеет только 24-bit S-LE, а mpv 24-бит не поддерживает формат. Помню что уже встречался с этим прежде. Решил попробовать virtual_oss. С ходу мне эта софтина очень не понравилась тем, что в man-е нет описания даже обязательных параметров. А описания многих других оставляют желать лучшего. Но это просто старая версия virtual_oss в портах, когда оно ещё даже не переехало разрабатываться на GitHub. Взял последнюю версию с него -- собралась без проблем на моей не новой системе. В общем с его помощью я сделал отдельное виртуальное OSS DSP устройство, в которое выводит звук mpv и другие программы, а оно уже выводит это в звуковую карту, опционально делая resampling: virtual_oss -S -Q 0 -C 2 -c 2 -r 48000 -b 24 -s 8ms \ -R /dev/null -P /dev/dsp4.0 -d dsp10
Сгенерирован: SGBlog 0.34.0