Plex Media Server for FreeNAS

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
На форуме Plex медиа сервера есть вот такая статейка (http://forums.plexapp.com/index.php/topic/67494-plex-media-server-for-freebsd) по поднятию PMS под FreeBSD 9.x.

Ничего не мешает запустить его в джейле на FreeNAS 9.1, может кому-то это будет интересно...

== последовательность действий по установке Plex Media Server как порта в jail-е для FreeNAS 9.1-Release==
  1. создаем jail
  2. ставим порт (https://github.com/KalleDK/plexmediaserver_port), прописываем в rc.conf переменные, как это описано в мануале
  3. используем =)
UPDATED: Распишу поподробнее, как делал я сам.

У нас есть чистый джейл, приступим:
Скачиваем дерево портов, распаковываем, обновляем:
Code:
# portsnap fetch extract update

далее, я люблю работать с bash в качестве командного интерпретатора, поэтому ставлю его из портов. Это занимает некоторое время, потому как подтягиваются зависимые порты:
Code:
# cd /usr/ports/shells/bash
# make install clean

затем качаем порт с Plex Media server:
Code:
# fetch http://plexrpms.markwalker.dk/FreeBSD-PMS/plexmediaserver-0.9.8.4.125.tbz

устанавливаем:
Code:
# pkg_add plexmediaserver-0.9.8.4.125.tbz

вносим дополнительные строки в файл /etc/rc.conf:
открываем в редакторе файл:
Code:
# vi /etc/rc.conf

добавляем строки:
Code:
plexmediaserver_enable="YES"
plexmediaserver_support_path="/usr/local/plexdata"

проверим владельца файлов в директории:
Code:
# ls -la /usr/local/share/plexmediaserver/

если там root wheel, то меняем владельца на plex plex, т.к. в противном случае не подгружаются агенты и плагины:
Code:
# chown -R plex:plex /usr/local/share/plexmediaserver

теперь пробуем запустить сервер:
Code:
# service plexmediaserver start

заходим на ip адрес джейла , например вот так: 192.168.1.43:32400/web - это стандартный порт Plex Media Server, в настройках можно поменять.

в джейл надо будет также пробросить папки или nfs_шАры и уже в web интерфейсе Plex добавить их для обработки

P.S. если что-то не получилось - напишите, разберемся что к чему

Updated: как установить плагин Kinopoisk.ru

Форум, посвященный плагину: http://forums.plexapp.com/index.php/topic/68373-kinopoiskru-15-релиз

Все действия происходят внутри джейла, где установлен Plex Media Server.
Качаем сам плагин (текущая версия бандла 1.5):
Code:
# cd /usr/local/plexdata/Plex Media Server/Plug-ins
# fetch http://sourceforge.net/projects/russianplex/files/KinoPoiskRu/KinoPoiskRu.bundle-1.5.zip/download
# tar zxvf download


распакуется папка KinoPoiskRu.bundle, которой необходимо поменять владельца на plex, аналогично другим папкам:

Code:
# chown -R plex:plex KinoPoiskRu.bundle


перезапускаем сервис:

Code:
# service plexmediaserver restart


Далее в настройках на web интерфейсе проверяем подключился ли плагин Кинопоиска.

Пользуемся.
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
В связи с выходом 1 августа релиза FreeNAS 9.1, решил проапгрейдить в тестовой зоне FreeNAS 9.1-RC1, который использовал для тестирования порта Plex Media Server.
В результате - всё отличненько работает.

Было замечено, что не подгружались плагины при старте Plex Media Server, в связи с чем отсутствовали все агенты для обработки медиа контента. Вылечилось путем раздачи прав на директории пользователю plex (
Code:
#chown -R plex:plex /usr/local/share/plexmediaserver
), под которым стартует сервер, ну это было очевидно.

Update: у парней на форме Plex (http://forums.plexapp.com/index.php/topic/73337-freebsd-port/) появилось обновление, так что косяк уже вылечен...

В итоге имеем на FreeNAS самый продвинутый медиасервер.

P.S. кстати имеется много плагинов уже под сам Plex Media server, например плагин, который подтягивает с Кинопоиска описания для фильмов, причем всё описание на русском языке. Мой телевизор при подключении к серверу Plex все фильмы выводит по-русски, так как это выглядит в медиатеке.
 

ponchello

Dabbler
Joined
Feb 6, 2013
Messages
13
Оу, йес, нашоль пост, буду пробовать...
Только такой вопрос есть: это права на самом Freenas или в jail?
 

ponchello

Dabbler
Joined
Feb 6, 2013
Messages
13
Поправил разрешения в jail - не сработало. Так и не грузит плагины с агентами. Причем я ставил порт, который как раз в той теме указан. Не судьба? Заметил обновления в описании порта. Щас буду править...
...
Добавил ссылку на /tmp и установил права 777. Все равно не работает.
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Оу, йес, нашоль пост, буду пробовать...
Только такой вопрос есть: это права на самом Freenas или в jail?

В новой сборке порта всё ребята поправили.
Я сейчас сам переехал с FreeNAS 8.3.1 на 9.1-Release и ставлю Plex, так что если по дороге встретятся нестандартные ситуации - напишу
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Поправил разрешения в jail - не сработало. Так и не грузит плагины с агентами. Причем я ставил порт, который как раз в той теме указан. Не судьба?

а какие права на директорию и файлы ниже её? я про директорию /usr/local/share/plexmediaserver
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
OK, видимо надо поподробнее расписать как я ставил. Я сейчас все с нуля установил в чистый джейл - всё отлично работает!
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Всё, приехали.
Работать-то софтину заставили, вот только качество выдаваемой картинки заметно хуже, чем аналогичный сервак, но работающий под Ubuntu.
В чём может быть проблема - не понимаю, пока неясно.

Update: Похоже, что разница в качестве из-за различных профилей, описывающих параметры подключаемых DLNA устройств...

Вот кусок лога PMS, который запущен на сервере с Ubuntu

Code:
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * path => http://127.0.0.1:32400/library/metadata/2455
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * mediaIndex => 0
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * partIndex => 0
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * session => xy1l5dhaps
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * protocol => hls
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * offset => 0
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * fastSeek => 1
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * directPlay => 0
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * directStream => 1
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * videoQuality => 75
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * videoResolution => 1280x720
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * maxVideoBitrate => 3000
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * subtitleSize => 100
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * audioBoost => 100
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Client-Identifier => xy1l5dhaps
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Product => Web Client
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Device => Mac
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Platform => Safari
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Platform-Version => 6
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Version => 1.2.6
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG -  * X-Plex-Device-Name => Plex/Web (Safari)
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - Request range: 0 to 1
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - Using profile Safari
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - Downloading document http://127.0.0.1:32400/library/metadata/2455
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - HTTP requesting to: http://127.0.0.1:32400/library/metadata/2455
Aug 06, 2013 16:40:31 [0x7f2434ff9700] DEBUG - Request: GET /library/metadata/2455 [127.0.0.1:43808] (3 live)
Aug 06, 2013 16:40:31 [0x7f2434ff9700] DEBUG - It took 0.000000 sec to serialize a list with 1 elements.
Aug 06, 2013 16:40:31 [0x7f2434ff9700] VERBOSE - Completed request: GET /library/metadata/2455: 200
Aug 06, 2013 16:40:31 [0x7f2455c72700] VERBOSE - Finished writing response for GET /library/metadata/2455, 0 bytes in 16ms
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - Caching document http://127.0.0.1:32400/library/metadata/2455 as 6589220d4b87d936f3eff385fa2a2d5dcb32ff78
Aug 06, 2013 16:40:31 [0x7f24357fa700] INFO - Черный дождь - video.width limitation applies: 1920 > 1280
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - Transcoding to hls/mpegts/h264/aac
Aug 06, 2013 16:40:31 [0x7f24357fa700] DEBUG - Found session GUID of xy1l5dhaps in session start.


а вот аналогичный кусок лога PMS, который запущен на FreeNAS

Code:
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * path => http://127.0.0.1:32400/library/metadata/36
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * mediaIndex => 0
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * partIndex => 0
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * session => 5ffzfijj4y7
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * protocol => hls
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * offset => 0
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * fastSeek => 1
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * directPlay => 0
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * directStream => 1
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * videoQuality => 60
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * videoResolution => 720x480
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * maxVideoBitrate => 1500
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * subtitleSize => 100
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * audioBoost => 100
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Client-Identifier => 5ffzfijj4y7
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Product => Web Client
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Device => Mac
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Platform => Safari
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Platform-Version => 6
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Version => 1.2.6
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG -  * X-Plex-Device-Name => Plex/Web (Safari)
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG - Using profile Safari
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG - Downloading document http://127.0.0.1:32400/library/metadata/36
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG - HTTP requesting to: http://127.0.0.1:32400/library/metadata/36
Aug 06, 2013 16:42:51 [0x807cde400] VERBOSE - [IDLE] Removing (1->0) work item http_download - /web/img/actionbar/unmatch.png
Aug 06, 2013 16:42:51 [0x807cde400] VERBOSE - [IDLE] * http_download - /photo/:/transcode?url=http%3A%2F%2F127.0.0.1%3A32400%2Flibrary%2Fmetadata%2F36%2Fthumb%2F1375747406&width=128&height=200 - 1 active item(s)
Aug 06, 2013 16:42:51 [0x807ced800] DEBUG - Request: GET /library/metadata/36 [127.0.0.1:64028] (9 live)
Aug 06, 2013 16:42:51 [0x807ced800] DEBUG - It took 0.007812 sec to serialize a list with 1 elements.
Aug 06, 2013 16:42:51 [0x807ced800] VERBOSE - Completed request: GET /library/metadata/36: 200
Aug 06, 2013 16:42:51 [0x80753a800] VERBOSE - Finished writing response for GET /library/metadata/36, 0 bytes in 48ms
Aug 06, 2013 16:42:51 [0x807cde000] INFO - Черный дождь - video.width limitation applies: 1920 > 720
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG - Transcoding to hls/mpegts/h264/aac
Aug 06, 2013 16:42:51 [0x807cde000] DEBUG - Found session GUID of 5ffzfijj4y7 in session start.



например, разница вот в этих параметрах:

на Ubuntu:

* videoQuality => 75
* videoResolution => 1280x720
* maxVideoBitrate => 3000

на FreeNAS:

* videoQuality => 60
* videoResolution => 720x480
* maxVideoBitrate => 1500

Вопрос - куда копать ?

P.S. что характерно: на телевизоре всё отлично, артефактов нет, только при подключении ноутом, айфонами, айпадами..
Скорее всего какая-то разница в DLNA профайле, некорректно определяется клиент
 

ponchello

Dabbler
Joined
Feb 6, 2013
Messages
13
OK, видимо надо поподробнее расписать как я ставил. Я сейчас все с нуля установил в чистый джейл - всё отлично работает!
Я тоже ставил в чистый джейл. Может это зависеть то типа джейла? Я ставил в portjail. Может надо в standard? И еще во FreeNAS 9.1 в настройках jail есть опции vimage NAT 32Bit VANILLA. Я ничего не трогал и по-умолчанию там включены только vimage и VANILLA. Может что-то из этого надо отключить?

ЗЫ: Я, конечно, прошу прощения за ламерские вопросы. До недавнего времени FreeBSD с командной строкой был от меня страшно далек...
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Я тоже ставил в чистый джейл. Может это зависеть то типа джейла? Я ставил в portjail. Может надо в standard? И еще во FreeNAS 9.1 в настройках jail есть опции vimage NAT 32Bit VANILLA. Я ничего не трогал и по-умолчанию там включены только vimage и VANILLA. Может что-то из этого надо отключить?

ЗЫ: Я, конечно, прошу прощения за ламерские вопросы. До недавнего времени FreeBSD с командной строкой был от меня страшно далек...

Нет, эти параметра в нашем случае ничего не изменят. Про типы джейлов хорошо написано в документации здесь http://doc.freenas.org/index.php/Jails

P.S. по поводу хренового качества транскодинга написал народу в форум на plexapp.com
 

ponchello

Dabbler
Joined
Feb 6, 2013
Messages
13
Документацию я читал, но для меня слова "gives a jail its own virtualized network stack" (это про VIMAGE) так сходу непонятны. А вот с тем, что такое VANILLA, я кажется разобрался: это ПО, позволяющее ставить пакеты двух разных типов. То-есть VANILLA обязательно нужно снять, чтобы их можно было устанавливать т.к. там написано "uncheck". Но как же в таком случае у меня поставился пакет, если я создавал джейл с неснятой галкой VANILLA?
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Документацию я читал, но для меня слова "gives a jail its own virtualized network stack" (это про VIMAGE) так сходу непонятны. А вот с тем, что такое VANILLA, я кажется разобрался: это ПО, позволяющее ставить пакеты двух разных типов. То-есть VANILLA обязательно нужно снять, чтобы их можно было устанавливать т.к. там написано "uncheck". Но как же в таком случае у меня поставился пакет, если я создавал джейл с неснятой галкой VANILLA?
Вот тут боле подробно написано, зачем VANILLA (http://doc.freenas.org/index.php/Adding_Jails), а именно uncheck this box to install the PBI tools and pkgng; these tools are always installed with a pluginjail

вобщем, если галку снять, то мы получим portjail + возможность установки программ не только из портов, но и с использованием утилиты pkg_add, а также готовые пакеты, которые выпущены для PC-BSD.
 

ponchello

Dabbler
Joined
Feb 6, 2013
Messages
13
Уважаемый pintapiva! Спасибо огромное за замечательный гайд - у меня наконец-то все получилось!
Есть только одна небольшая просьба: напишите гайд про добавление плагина с кинопоиска.
Это я уже сам разобрался и он даже подгружается и показывается в выпадающих списках.
Если еще и он заработает, наступит полное и окончательное щасьтье!
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Уважаемый pintapiva! Спасибо огромное за замечательный гайд - у меня наконец-то все получилось!
Есть только одна небольшая просьба: напишите гайд про добавление плагина с кинопоиска.
Это я уже сам разобрался и он даже подгружается и показывается в выпадающих списках.
Если еще и он заработает, наступит полное и окончательное щасьтье!

Да, пожалуйста!
Как ставить плагин - написал в апдейте в первом посте.
 

ponchello

Dabbler
Joined
Feb 6, 2013
Messages
13
Как ставить плагин - написал в апдейте в первом посте.
За описание установки плагина отдельное спасибо. Тому, кто не в теме сложно сходу догадаться.
 

-wall-

Dabbler
Joined
Jun 29, 2013
Messages
16
Отличный гайд, спасибо. Plex заработал в качестве DLNA-сервера и по вебу.
Однако, было бы неплохо ПК с freenas 9.1.1 использовать и в качестве медиаплеера, подключив ТВ через HDMI.
PS: Тут (http://xbmc.ru/forum/showthread.php?t=695&highlight=freenas) ставили XBMC на фринас 8.
 

pintapiva

Explorer
Joined
Jul 17, 2013
Messages
71
Отличный гайд, спасибо. Plex заработал в качестве DLNA-сервера и по вебу.
Однако, было бы неплохо ПК с freenas 9.1.1 использовать и в качестве медиаплеера, подключив ТВ через HDMI.
PS: Тут (http://xbmc.ru/forum/showthread.php?t=695&highlight=freenas) ставили XBMC на фринас 8.

честно, не пробовал выводить через HDMI, слишком здоровый у меня корпус =), да и в чём смысл, если практически все новые TV умеют работать в сети и воспроизводить контент с UPnP медиасерверов

p.s. хотя можно создать монстра: Plex (UPnP медиасервер) + XBMC (для вывода на TV)
 

-wall-

Dabbler
Joined
Jun 29, 2013
Messages
16
честно, не пробовал выводить через HDMI, слишком здоровый у меня корпус =),
У меня тоже не HTPC, с половинку mini-tower точно будет.
Но это не важно, ведь есть удлинители HDMI через витую пару (http://www.amazon.com/dp/B003E7YRWS/?tag=ozlp-20).
Тут человек это на Ubuntu настраивал: http://olegart.ru/wordpress/2013/05/20/3965/#more-3965
да и в чём смысл, если практически все новые TV умеют работать в сети и воспроизводить контент с UPnP медиасерверов
При воспроизведении через DLNA тормозят фильмы с большим битрейтом, например, BD-рипы. Да и оформление встроенного в TV DLNA сильно проигрывает медиасерверу (не smart-TV, соответственно, виджет под Plex поставить не выйдет).
p.s. хотя можно создать монстра: Plex (UPnP медиасервер) + XBMC (для вывода на TV)
Было бы интересно это совместить во Freenas. Какие-то компоненты придётся доставить вручную. Однако, я не BSD-шник (и вообще, не юниксоид), поэтому не лезу глубоко в то, в чём досконально не разбираюсь :)
 

newby

Cadet
Joined
Nov 19, 2013
Messages
8
Updated: как установить плагин Kinopoisk.ru

Форум, посвященный плагину: http://forums.plexapp.com/index.php/topic/68373-kinopoiskru-15-релиз

Все действия происходят внутри джейла, где установлен Plex Media Server.
Качаем сам плагин (текущая версия бандла 1.5):
Code:
# cd /usr/local/plexdata/Plex Media Server/Plug-ins
# fetch http://sourceforge.net/projects/russianplex/files/KinoPoiskRu/KinoPoiskRu.bundle-1.5.zip/download
# tar zxvf download

установил PMS.
папку plug-ins нашёл по пути:
Code:
# /jails/plex_1/usr/pbi/plexmediaserver-amd64/plexdata/Plex Media Server/Plug-ins

и так как Plex Media Server с пробелами, то чтобы туда перейти нужно занести всё в кавычки))))
Code:
#cd "/mnt/home/jails/plex_1/usr/pbi/plexmediaserver-amd64/plexdata/Plex Media Server/Plug-ins"
 

newby

Cadet
Joined
Nov 19, 2013
Messages
8
после установки pms в сообщениях консоли появились сообщения такого рода:
Code:
Nov 25 10:00:22 homenas kernel: Limiting closed port RST response from 203 to 200 packets/sec

особенно когда просматриваешь видео через plexweb. Бывает даже response from 600 to 200 packets/sec и более)
Это нормально? А если не нормально то что с этим делать?
 
Top