MPlayer — изменение порядка кодеков «ao=» в mplayer.conf не работает для конфигурации каждого пользователя?

Цитата из mplayer.conf:
"Файлы конфигурации считываются для всей системы из /etc/mplayer/mplayer.conf
и для каждого пользователя из ~/.mplayer/config, где настройки для каждого пользователя переопределяют
системные широкие настройки, все из которых переопределяются с помощью командной строки."

Однако изменение порядка аудиокодеков таким образом, чтобы "alsa" стояло первым в файле конфигурации пользователя, не работает.

Я предпочитаю оставить файл /etc/mplayer/mplayer.conf как есть и внести изменения в файл mplayer.conf в ~/.mplayer/config.

Использование следующей строки: «ao=alsa,pulse,sdl:aalib» работает только в файле конфигурации /etc/mplayer и, следовательно, не переопределяется настройками «на пользователя».

Кроме того, я бы предпочел не запускать mplayer с параметром «-ao alsa»…

Любые мысли о том, является ли это «ошибкой» или «запросом функции», или я что-то пропустил?

Редактировать - добавление того, что при воспроизведении mp3 возвращается следующее предупреждение: «AO: [pulse] Init failed: соединение отклонено. видео Начало воспроизведения..."

ИСПРАВЛЕНО
MPlayer ищет переменную окружения 'HOME', чтобы определить, где искать пользовательский файл конфигурации mplayer. Такие приложения, как lighttpd, используемые для запуска скриптов, которые, в свою очередь, запускают mplayer, по умолчанию не устанавливают переменную среды 'HOME'. Можно возразить и сказать, что существует ограничение, связанное с тем, что MPlayer ищет только значение среды «HOME», а не более надежный механизм для определения «домашнего» каталога пользователя....

Запуск MPlayer с 'env HOME=/var/www' поможет MPlayer найти файл конфигурации пользователя без необходимости редактирования /etc/mplayer/mplayer.conf. Это также устраняет необходимость запускать MPlayer с помощью sudo:

Например, следующая инструкция работает в сценарии Python, вызываемом из удаленного браузера, подключающегося к веб-серверу lightpd на Raspberry Pi: , '-slave', '-nocache', '-quiet', '-volume', '60', '-key-fifo-size', '2', '-input', 'file=/run/shm /mpcontrol', '-playlist', 'http://tx.whatson.com/icecast.php?i=magic1054.mp3.m3u' ], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)


person Jim Cross    schedule 10.09.2014    source источник
comment
И мы не добавляем РЕШЕНО к вопросам здесь. Когда вы нажимаете галочку рядом с ответом, это говорит всем, что проблема решена. :)   -  person Almo    schedule 17.09.2014


Ответы (2)


Извиняюсь за это дополнительное сообщение - я не знал, как и даже если бы я мог ответить на свой вопрос - но вот я сейчас ...

Исправление подробно описано в вопросе. В двух словах: Один из способов, которым MPlayer может использовать пользовательский конфигурационный файл MPlayer, заключается в том, что переменная окружения 'HOME' должна быть установлена ​​с указанием пути к каталогу .mplayer, где находится файл 'config'. Для случаев, когда HOME не установлен (например, скрипт, запускаемый веб-сервером), добавьте 'env HOME=/dir/where/to/find/config" при запуске mplayer.

person Jim Cross    schedule 17.09.2014

После обсуждений с приятными парнями в MPlayer я пересмотрел свое дело и, следовательно, получил дополнительный ответ, но связанный с lighttpd (lighty), которого нет в заголовке, и поэтому его можно пропустить, если кто-то ищет решение проблемы. аналогичная проблема.

Дополнительный ответ:
Как уже упоминалось, MPlayer требует переменной окружения 'HOME', показывающей, где находится 'домашняя' директория, которая содержит подкаталог '.mplayer' - это местонахождение пользовательского конфигурационного файла MPlayers.
Оказывается, вместо этого можно использовать переменную окружения 'MPLAYER_HOME'.
Если используется 'MPLAYER_HOME', потребуется полный каталог, то есть 'env MPLAYER_HOME=/var/www/.mplayer'.

Итак, вернемся к моему делу и лайти. Очевидно, лучше использовать переменную «MPLAYER_HOME», а не «HOME», которая может быть скомпрометирована через веб-сервер.
Добавьте следующие две записи в /etc/lighttpd/lighttpd.conf:

Добавьте следующий модуль в раздел server.modules: «mod_setenv»

И следующий env var для модуля 'CGI': setenv.add-environment = ("MPLAYER_HOME" => "/var/www/.mplayer")
Легко перезапустите, чтобы прочитать дополнения к конфигу. 'lighty' теперь передает env var 'MPLAYER_HOME' для любой инструкции по запуску скриптов. Просто для полноты сценария python больше не нужно указывать префикс для параметра «env» при запуске mplayer.

person Jim Cross    schedule 18.09.2014