Я думал об mplayer лучше (44100->48000 на ALSA)

nafanja
Natrio
Однако 44100 не кратно 48000, а значит искажения неизбежны.
А на слух это заметно? )))
Зависит от слуха :)

А если серьёзно, то я чуть выше приводил пример того, как это можно явственно услышать.
до
MPlayer SVN-r35421-4.7.2 (C) 2000-2012 MPlayer Team
199 audio & 415 video codecs
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /mnt/music/zz-top/Sborniki/2003 - Chrome, Smoke & BBQ (4 CD)/CD3/08 - Sharp Dressed Man.mp3.
libavformat version 54.36.100 (internal)
Audio only file format detected.
Load subtitles in /mnt/music/zz-top/Sborniki/2003 - Chrome, Smoke & BBQ (4 CD)/CD3/
==========================================================================
Opening audio decoder: MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 320.0 kbit/22.68% (ratio: 40000->176400)
Selected audio codec: afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
audio_setup: Can't open audio device /dev/dsp: No such file or directory
AO: 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback…
A: 35.4 (35.3) of 252.0 (04:12.0) 0.9%
после
MPlayer SVN-r35421-4.7.2 (C) 2000-2012 MPlayer Team
199 audio & 415 video codecs
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /mnt/music/zz-top/Sborniki/2003 - Chrome, Smoke & BBQ (4 CD)/CD3/08 - Sharp Dressed Man.mp3.
libavformat version 54.36.100 (internal)
Audio only file format detected.
Load subtitles in /mnt/music/zz-top/Sborniki/2003 - Chrome, Smoke & BBQ (4 CD)/CD3/
==========================================================================
Opening audio decoder: MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 320.0 kbit/22.68% (ratio: 40000->176400)
Selected audio codec: afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
audio_setup: Can't open audio device /dev/dsp: No such file or directory
AO: 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback…
A: 25.5 (25.4) of 252.0 (04:12.0) 0.6%

Exiting… (Quit)
cat /usr/share/alsa/alsa.conf | grep rate
#defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.rate 44100
                description "Discard all samples (playback) or generate zero samples (capture)"
соответсвенно то, что вначале без комментария, после - с изменением.
┌─[ Ср. нояб. 28 ] :: [archangel] - [hellgate] :: [~]
└─>> ls -la ~ | grep mpl
drwxr-xr-x  2 archangel users  4096 нояб. 19 19:00 .mplayer
┌─[ Ср. нояб. 28 ] :: [archangel] - [hellgate] :: [~]
└─>> cat .mplayer/
cat: .mplayer/: Это каталог
┌─[ Ср. нояб. 28 ] :: [archangel] - [hellgate] :: [~]
└─>> cat .mplayer/config 
# Write your default config options here!
А теперь давайте разбираться, почему у меня так? У меня получается програмно мплаер выводит звук, если перефразировать точнее - он так выводит по умолчанию . (64 бит, стоковое, систему ставил с нуля неделю назад, ручных манипуляций с алса или мплаером не было).
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
Я обычно не правлю конфиги, которые будет затёрты после обновления, но попробовал, вдруг действительно mplayer за каким-то фигом читает конфиги ALSA :)
Но нет, не влияет.

Как я уже говорил:
1) другие плееры делают всё правильно
2) вывод в hw:N,N идёт МИМО dmix
3) Мне нужно НЕ установить частоту 44100 принудительно, а разрешить плеерам выбирать частоту автоматически, в зависимости от частоты записи.

Так что для моего случая (многоканальная звуковуха, все частоты поддерживаются аппаратно) пока что хватит эмуляции OSS, пр работе с которым mplayer не глючит и всегда выбирает частоту правильно, а дальше буду писать багрепорт – вдруг разработчики вразумятся и исправят багофичу.
направил в 0.0, действительно не то, что ожидается. Не знаю, да и вариант мой с програмной обработкой тоже мне не нравится, так как это “костыль для 44к” и не более того, задача то, так и не решенная первоочередная. А конфиг я наместо вернул и да, я правил системный конфиг только потому, что мне не охота сорить в домашки по мелочи, да и так наглядней было показать.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
Нашел, как проверить, на какой частоте идёт вывод.

Вывожу через aplay тестовый файл WAV 22050 моно:
aplay -D hw:0,0,0 test.wav
Смотрю, что показывает ядро:
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 1
rate: 22050 (22050/1)
period_size: 2756
buffer_size: 11025
Всё по-честному – как есть, так и выводится.

Теперь запускаю в mplayer файл MP3 44100 стерео через эмуляцию OSS, и опять смотрю, что показывает ядро:
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 2048
buffer_size: 16384
OSS format: S16_LE
OSS channels: 2
OSS rate: 44100
OSS period bytes: 8192
OSS periods: 8
OSS period frames: 2048
Ну вот, и эмулятор OSS в ядре работает без обмана, честно переправляет всё как есть в ближайший свободный субканал карточки через ALSA-драйвер.

Тот же файл в ffplay :
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 236
buffer_size: 2048
И тут видно, что вывод идёт в ALSA, и частота правильная, хотя я даже не указывал устройство для вывода. И неудивительно – если специально не крутить конфиги, для многоканальных карточек dmix в alsa-lib по-умолчанию НЕ используется.

И только mplayer, как его ни крути, какой файл ни подсовывай, всегда выводит в ALSA вот так:
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 16384
Вообще-то mplayer это видеоплейер, в видеофайлах звук записывается от барабана и возможно разработчики просто решили привести всё общему знаменателю. Зачем играть mp3 да ещё и видеопроигрывателем - не очень понимаю.

Кстати, информация mplayer о звуке
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, s16le, 151.8 kbit/10.76% (ratio: 18972->176400)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)                                                                                              
Starting playback...                                                                                                                           
Unsupported PixelFormat 61                                                                                                                     
Unsupported PixelFormat 53                                                                                                                     
Unsupported PixelFormat 81                                                                                                                     
Movie-Aspect is undefined - no prescaling applied.                                                                                             
VO: [vdpau] 1280x720 => 1280x720 Planar YV12
а вот инфо из карты
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 44100
buffer_size: 88200
mplayer - плеер всех времен и народов. Кроме видео практически всех форматов и “mp3”, отлично воспроизводит, например, flac. В таком случае Natrio прав - есть материал без потери качества, и ресемплинг - это не есть хорошо.
Chawoosh
Кстати, информация mplayer о звуке
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
А вы тред внимательней почитайте:
безо всяких dmix, пульсы и прочих костылей, mplayer упорно и бессмысленно ресэмплирует любую частоту на 48000 перед выводом.
Я привёл всю информацию, смотри на код. Ни фига он не ресемлирует. По крайней мере - у меня, из видеофайла.

Музыку нормальные люди слушают аудациусом, в крайнем случае - мёртвым мясом. Оба играют все музыкальные форматы.
Chawoosh
Я привёл всю информацию, смотри на код. Ни фига он не ресемлирует. По крайней мере - у меня, из видеофайла.
Разблокировал у себя встроенный звук на материнке (intel HDA), попробовал.
С ней ALSA-модуль mplayer работает так – выдаёт поддерживаемые ей частоты 44100 48000 96000 192000 без изменений, остальные автоматически переопределяет на одну из этих. Выходит, что mplayer считает себя умнее пользователя по каким-то свои соображениям определяет, на какой частоте с какой карточкой работать, а список частот, на которых карточка согласна воспроизводить звук, для него не указ.

Музыку нормальные люди слушают …
Нормальные люди сами решают, чем слушать :)
Я тоже слушаю музыку аудасиусом, но если нужен только один файл – проще набрать в консольке.
В консольке - mpg123 и flac123 довольно неплохо играют всё подряд. И в миднайт этому делу легко обучается :)
 
Зарегистрироваться или войдите чтобы оставить сообщение.