воскресенье, 7 декабря 2014 г.

Настройка 5.1 audio в Gentoo

После покупки и установки по комнате 5.1 аудио системы+ресивера встало 2  вопроса
  1. как все это правильно подключить к ноутбуку и внешнему монитору который у меня имелись. Телевизора у меня нет, поэтому вариант с ним не расматривается.
  2. Как все правильно настроить в gentoo
Итак, по порядку:

Вывод цифрового сигнала с бука:


Мой ноутбук позволяет выводить цифровой звук через hdmi либо spdif. К порту hdmi уже подключен монитор. Ресивер поддерживает hdmi, spdif, аналоговые входы.
Сходу конечно показалось идеальной схема:
ноутбук -> hdmi кабель -> ресивер -> монитор.  Казалось бы , ничего лишнего , один кабель по которому ресивер забирает и звук и картинку.
И действительно , схема заработала, да только вот при одном условии, если я выбираю в настройках вывода на ноутбуке  FullHD 1920x1080 разрешение. С родным разрешением ноутбук. При родном разрешении монитора 2560x1080 ресивер просто выводит черную картинку. 
После недолгого гугления оказалось , что ресивер поддерживает только fullhd хотя технически его порты поддерживают hdmi 1.4a, и никаких кастомных разрешений. На форумах ссылались , что все ресиверы заточены под стандартные разрешения телевизоров FullHd или 4k, а вот кастомное 2560x1080 увы.
В итоге я просто купил spdif кабель , которым у подключить ноутбук напрямую к ресиверу.

Настройка gentoo

Скажу сразу, что звук стал играть сразу, оказывается все довольно тривиально.
Я пользуюсь pulseaudio , поэтому далее настройки через нее.
Для выбора основного устройства куда будет идти звук я использовал утилиту pavucontrol:



Собственно настройки в Advanced секции нужно чтобы сказать pulseaudio пробрасывать звук, закодированный в отличный от стерео формат напрямую на цифровой выход.

Далее понадобилось настроить еще видео плееры.

VLC - поддерживает вывод 5.1 звука через pulseaudio, поэтому настраивать ничего не надо. Просто поставил вывод звука через пульс:

  

Smplayer  - не поддерижвает вывод 5.1 звука через pulse audio, поэтому я переключил его выводить звук напрямую через alsa и spdif. Такой вариант менее предподчительный, так как мне не очень нравится идея настраивать вывод для каждой программы отдельно.


Собственно - alsa (0.1) мой spdif вывод, а галочка ac3/dts pass through.

После этого звук правильным образом выводится через цифровой выход:

  • При выводе обычных приложение как chrome или deadbeef звук выводится в формате стерео и ресивер сам раскдадывает его на дорожки
  • При выводе с vlc или smplayer звук выводится в 5.1 при наличии соответствующей дорожки

суббота, 9 августа 2014 г.

После рестарта PulseAudio устанавливает звук в ноль, решение

После перехода на pulseaudio (которое в gentoo стал требовать skype) появилась такая проблема. Всегда после ребута звук в колонках стоит на нуле.

Решение нашел на этом форуме

Соотвественно , в /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf
поменял одну строчку:

 [Element Speaker]
 switch = mute
 volume = off
на
 [Element Speaker]
 switch = mute
 volume = merge

И все заработало. Оставалась только проблема , что этот файл будет перезатираться после каждой переустановки pulseaudio.
Только для Gentoo : чтобы сохранять изменение после переустановки, я создал патч unmute-on-reboot-patch и положил его в /etc/portage/patches/media-sound/pulseaudio/
Gentoo сам проверяет директорию /etc/portage/patches при установке пакетов и накатывает юзерские патчи если какие-то есть.Больше информации есть в gentoo handbook
Вот собственно и тривиальный патч:
--- pulseaudio-5.0/src/modules/alsa/mixer/paths/analog-output.conf      2014-01-21 05:39:57.000000000 -0800
+++ pulseaudio-5.0-patched/src/modules/alsa/mixer/paths/analog-output.conf      2014-08-09 17:08:02.993210383 -0700
@@ -62,7 +62,7 @@

 [Element Speaker]
 switch = mute
-volume = off
+volume = merge

 [Element Desktop Speaker]

 switch = mute

суббота, 28 июня 2014 г.

Решение проблемы с прыгающим курсором на Lenovo Y500

Всем хорош Lenovo Y500 для линукса, кроме своего кликпада
Кликпад - вот такой большой тачпад без хархварных кнопок.
Проблема заключалась в том , что кликать и скролить по такому тачпаду можно в любом месте. И эти два евента постоянно путаются.
Соответсвенно при каждом клике линуксовый драйвер пытался еще и скролить, отчего курсор дрожал и нажать хоть на что-то адски нервировало.
Для себя я проблему решил использованием мышки :(
С появлением 1.8 версии synaptics клики починили, но тачпад стал отваливаться после каждого multi finger scroll

Сейчас наконец-то сделали фикс, и отлично работает абсолютно все !
Надо поставить:
Минимум 1.8 версии synaptics драйвера:
  x11-drivers/xf86-input-synaptics-1.8.0
А также библиотеке libevdev минимум 1.2.2 версии
  dev-libs/libevdev-1.2.2

Спасибо разработчикам, что наконец починили эту крайне неприятную штуку :)

суббота, 22 марта 2014 г.

Стриминг звука или(и) видео с Gentoo по сети через VLC

Люблю сутра посмотреть футбол . Жена еще спит и будет не хочется. Соответственно наушники. втыкаю в комп и смотрю на мониторе.

Но провод у них короткий, достает только метр от монитора. А так как монитор большой, хочется смотреть с удобного диванчика на другом краю комнаты :) причем слушая звук из наушников.
Знаю, что самое классное решение - bluetooth гарнитура. но у меня ее под рукой не оказалось.

Поэтому решение чуть сложнее, используя стриминг:
1. На компе запускаю vlc, который стримает звук по сети. 
    Сделать это можно вот такими командами:
cvlc http://192.168.1.3:5678 --sout='#transcode{vcodec=none,acodec=mp3,ab=1,channels=2,samplerate=44100} :http{mux=ffmpeg{mux=MP3},ttl=0,dst=:8080/'
где http://192.168.1.3:5678 - это адрес sopcast трансляции, запущейнной через sopcast-bin.               Впринципе можно запускать любой источник.
dst=:8080 - говорит, что стриминг будет идти с порта 8080
            
Вот на всякий случай команда, чтобы стримать тоже самое, но вместе с видео:
сvlc http://192.168.1.3:5678 --sout='#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100} :http{mux=ffmpeg{mux=MP3},dst=:8080/'

2. Далее на своем андроиде запускаю Ultimate Media Player. Опытным путем было подобрано, что в этом плеере практически нулевая задержка

3. Все, можно втыкать наушники в телефон у слушать звук с него, при этом имея видео на большом экране

Да, ну и bluetooth наушники для этого дела, конечно лучше, так как задержки не будет вообще.

вторник, 11 февраля 2014 г.

Просмотр телевидения через acestream в gentoo 64bit

Олимпиада уже началась и хочется поболеть за родных спортсменов.
Но что делать, если нету русских каналов и телевизора, зато быстрый интернет?

Я перепробовал много разных вариантов. Самый распространенный  - это смотреть через флеш с многочисленных сайтов . Недостаток - это нестабильность и плохое качество.

Есть вариант с сопкастом . Это p2p технология просмотра. Качество хорошее, но нету постоянной ссылки на канал с показом интересующего матча. Надо постоянно лазить в интернете и искать.

Оптимальным найденным решением оказался acestream, так как называемое торрент телевидение.
Принцип у него похожий на сопкаст - первый пользователь начинает смотреть , потом второй пользователь скачивает трансляцию с первого, третий с первых двух. Вобщем, чем больше пользователей тем лучше трансляция и качество.
Однако, в отличие от sopcast у acestream есть преимущества:



Все отлично, но разработчики делают версию только для убунту и требуются небольшие телодвижения, чтобы поставить acestream в gentoo. По порядку о них:

1. Скачиваем оверлей stuff . Лучше через layman
layman -a stuff

2. проверяем с какими флагами установлена openssl. Чтобы acestream работал, надо включить в openssl  запатентованную поддержку "Elliptic Curve Cryptography". Для этого отключаем флаг bindist

У меня флаги выглядят следующим образом:
dev-libs/openssl-1.0.1f  USE="(sse2) tls-heartbeat zlib -bindist -gmp -kerberos -rfc3779 -static-libs {-test} -vanilla"

Если до этого флаг был включен , рекомендую сначала удалить openssl, а потом поставить его с
выключенным флагом. Иначе gentoo предлагает ставить версию openssl 0.9

3. Устанавливаем из оверлея  плагин для броузера и плеер на основе vlc. Они сами подтянут ве зависимости:
emerge www-plugins/acestream-plugin media-video/acestream-player

4. Я использую хром. В нем , отличие от файрфокс, плагин для броузера из коробки не заводится.

Потому что сам плагин поставляется в формате ns plugins и  в 32 виде.
Чтобы плагин заработал в 64 битном хроме , ставим:
emerge www-plugins/nspluginwrapper
И говорим ему, где искать плагин для броузера. Тут Может быть некритическое сообщение  "no appropriate viewer found"
nspluginwrapper -i /usr/lib/nsbrowser/plugins/libace_plugin.so

5. Запускаем в консоли серверную часть acestream
 acestreamengine --client-console
Если вываливается с такой ошибкой, то смотрите пункт про openssl:
Traceback (most recent call last):
  File "core.c", line 503, in 
  File "core.c", line 138, in 
  File "core.c", line 74, in 
  File "core.c", line 45, in 
  File "/usr/lib64/python2.7/site-packages/M2Crypto/EC.py", line 15, in 
    m2.ec_init(ECError)
AttributeError: 'module' object has no attribute 'ec_init'

5. Открываем chrome и смотрим через http://torrent-tv.ru/