Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Как-то я долго не придавал значения цифре 48000 на выводе в ALSA аудиодорожек с собственной частотой 44100, и вот сегодня дошли руки проверить, что же у меня не так настроено. Порыл man mplayer, погуглил – и не нашел НИ ОДНО способа это исправить. То есть даже при выводе в “железный” hw:0,0 на хорошей многоканальной звуковухе с поддержкой всех мыслимых частот и безо всяких dmix, пульсы и прочих костылей, mplayer упорно и бессмысленно ресэмплирует любую частоту на 48000 перед выводом. Гугл по моему запросу нашел только багрепорт мейнтейнерам Дебиана на аналогичную тему, в ответ на который дебианщики на голубом глазу заявили удивлённому немцу, что это не баг, а фича. Я даже попробовал заменить mplayer на mplayer2 – но похоже, они сговорились :) Остальные испробованные мной плееры, включая aplay, такого глюка не показали. В конце концов я прописал в конфиг mplayer вывод в эмуляцию OSS – на него у mplayer такого глюка пока нет. (Хорошо, что я давно уже прописал загрузку модуля snd-pcm-oss, вдруг понадобится вывести /dev/random в /dev/dsp :) Вопрос – кто-нибудь знает, когда хотя бы примерно это началось, и что с этим делать (помимо написания багрепорта)? |
cucullus |
|
Темы:
256
Сообщения:
3435
Участник с: 06 июня 2007
|
Больше не меньше. Чего париться? Или приступ перфекционизма? ;)
такие дела.
|
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Да я в общем-то и не парюсь, жил же как-то до этого. Однако 44100 не кратно 48000, а значит искажения неизбежны. Если это не отключается, то или баг, или откровенная халтура разработчиков mplayer. Как к ним после этого относиться, и чего ещё ждать… |
sleepycat |
|
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
было , задавался как то, 44100 - цифры знакомые и не вызывают внимание, 48… др. дело. Я гуглил насчет конфига, хотел както заставить выводить звук таким каким он есть без изменений, специально для целей определения качества mplayer-ом на ходу, вместе с прослушиванием. Так и не нашел, подумал что я еще не слишком мудр и так надо.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
У mplayer есть опция -srate Ей можно принудительно задать частоту вывода, и если она не совпадает с оригинальной, будет применено ресэмплирование. Если указать вывод в OSS, можно наблюдать (и слушать) как она работает. Но при выводе в ALSA mplayer просто игнорит её, и ВСЕГДА ресэмплирует в 48000, хоть -srate 8000 пиши, хоть 96000. P.S. Поправочка – не игнорит, переопределяет. Оказывается, mplayer точно думает, что звуковуха поддерживает ТОЛЬКО 48000Hz, и ведёт себя соответственно. Здесь я для проверки указал -srate 96000 ========================================================================== Building audio filter chain for 44100Hz/2ch/s16le -> 96000Hz/0ch/??... [libaf] Adding filter dummy [dummy] Was reinitialized: 44100Hz/2ch/s16le [libaf] Adding filter lavcresample [dummy] Was reinitialized: 96000Hz/2ch/s16le [dummy] Was reinitialized: 96000Hz/2ch/s16le Trying preferred audio driver 'alsa', options 'device=hw=0.0' alsa-init: requested format: 96000 Hz, 2 channels, 9 alsa-init: using ALSA 1.0.26 alsa-init: setup for 1/2 channel(s) alsa-init: using device hw:0,0 alsa-init: opening device in blocking mode alsa-init: device reopened in blocking mode alsa-init: got buffersize=65536 alsa-init: got period size 1024 alsa: 48000 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample) AO: Description: ALSA-0.9.x-1.x audio output AO: Author: Alex Beregszaszi, Zsolt Barat <joy@streamminister.de> AO: Comment: under development Building audio filter chain for 44100Hz/2ch/s16le -> 48000Hz/2ch/s16le... [dummy] Was reinitialized: 96000Hz/2ch/s16le [dummy] Was reinitialized: 48000Hz/2ch/s16le [dummy] Was reinitialized: 48000Hz/2ch/s16le Video: no video Freeing 0 unused video chunks. Starting playback... |
sleepycat |
|
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
да, идея попробовать принудительно поставить частоту тоже пришла в голову, но тогда возникает вопрос, а что если частота будет 48… Не будет ли снижения(обратного). Вариант принудительно заставить программу выдать нужное не устроила (априори), т.е. если бы наоборот нужно было бы “поиздеваться” над выходом - было бы логично. Остановился на defaults.pcm.dmix.rate 44100
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
sleepycatdmix работает только при выводе в “программный” интерфейс alsa-lib. Если выводить в hw, его не должно быть в принципе. Я остановился на ao=oss , работает. Вроде :) Что оно там делает с ним в ядре – не проверял, хотя можно устроить эксперимент с искусственным сигналом на частоте, кратной тактовой, и его отловом на выходе. Если будет интерференция – есть ресэмплирование. Если всё чисто – нету. |
sleepycat |
|
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
надеюсь Вы правы, к сожалению опыта нет в этой части чтобы как-то прокоментировать. Но всеже, можешь попробовать эту опцию, там просто подазрительно похоже стоит 48000. Есть еще pcm.rate_convert { type plug slave { pcm "hw:0,0" rate 48000 } }
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Это секция конфига alsa-lib для конвертации “программного” вывода в 48000 с перенаправлением в hw:0,0 То бишь как раз то, что делает mplayer и без этого. Нет, манипуляции с ALSA тут ни при чём – дело в самом mplayer, это он почему-то считает, что ALSA якобы ничего кроме 48000 не понимает. Другие плееры выводят в ALSA на любых стандартных частотах. |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
NatrioА на слух это заметно? )))
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |