PDA

Bekijk de volledige versie : minidlna - новый UPnP/DLNA медиасервер



ryzhov_al
09-12-2011, 19:29
Предлагаю на пробу UPnP/DLNA медиасервер, которого нет в репозитории Optware - minidlna (http://sourceforge.net/projects/minidlna/) последней версии. Ставится так:

$ opkg install minidlnaКонфигурация доходчиво описана здесь (http://www.opennet.ru/tips/info/2328.shtml). Просканировав за сорок минут такую коллекцию:

$ du -s -h /tmp/store/*
50.9G /tmp/store/Music
46.8G /tmp/store/Photo
80.9G /tmp/store/Video

$ cat /opt/var/log/minidlna.log | grep files
[2011/12/09 22:23:22] scanner.c:797: warn: Scanning /tmp/store/Video finished (532 files)!
[2011/12/09 22:29:25] scanner.c:797: warn: Scanning /tmp/store/Music finished (5367 files)!
[2011/12/09 22:41:44] scanner.c:797: warn: Scanning /tmp/store/Photo finished (20436 files)!
медиасервер создал sqlite3 базу объёмом 39Мб. В процессе сканирования нагрузка на CPU составляла 70-90%, во всех других моментах использования - не более 5%. Потребление памяти относительно скромное:

$ pmap -d `pidof minidlna` | grep mapped
mapped: 21244K writeable/private: 13000K shared: 0K
Для сравнения: легковесный ushare потребляет больше, так как держит базу файлов в оперативной памяти:

$ pmap -d `pidof ushare` | grep mapped
mapped: 36232K writeable/private: 29644K shared: 0K
Плюсы:

killing feature: сканирование тегов в аудиофайлах и фотографиях и каталогизация их на плеере. Фотографии, например, можно выстраивать на плеере по дате съёмки или по используемой камере. Аудиофайлы - по жанру, исполнителю и другой информации из тегов. Всегда остаётся возможность просмотра исходной файловой иерархии медиаколлекции,
поддержка FLV, MKV, SRT и других форматов,
поддержка обложек к муз.альбомам,
при добавлении файлов нет необходимости пересканировать всю файловую иерархию, механизм inotify работает,
не портит базу при внезапной остановке, в отличие от mediatomb.

Минусы:
Несмотря на поддержку FLAC, "длинные" flac'и не режутся на треки по Cue sheet'у,
Теги в CP1251 кажет на экране плейера кракозябрами,
MKV не перематываются, APE не понимает, ISO-образы не поддерживаются.

Итог:

Медиасервер по возможностям "тяжелее" ushare, но "легче" mediatomb'а. Если от медиасервера не требуется ничего, кроме показа иерархии медиафайлов, то лучше использовать ushare, если же необходима каталогизация файлов, но не востребованы другие возможности\болячки mediatomb, то можно остановиться на minidlna.

Omega
10-02-2012, 22:28
Предлагаю на пробу UPnP/DLNA медиасервер, которого нет в репозитории Optware - minidlna (http://sourceforge.net/projects/minidlna/) последней версии.
Вышла новая версия 1.0.23 с исправлениями и дополнениями ... :rolleyes: http://forum.zyxmon.org/topic91-minidlna-na-keenetic-p4.html ;)


1.0.23 - Released 23-Jan-2012
--------------------------------
- Enable the subtitle menu on some Samsung TV's.
- Add subtitle support for Panasonic TV's.
- Add workarounds for LifeTab tablets' bad behavior.
- Speed up playlist parsing.
- Make metadata-based virtual containers case insensitive.
- Add folder art support (very few clients support this though).
- Improve trimming of quotation marks.
- Fix SRT caption support with the latest Samsung Series D firmware.
- Fix subtitles on LG TV's for items whose titles don't have a dot in them.
- Add support for the av: mediaClass tag, so some Sony devices can filter items by media type.
- Fix inotify detection issues on first-level folders.
- Work around LifeTab's broken DLNA support.
- Add image rotation support during resize. (mostly useful for TiVo)

З.Ы. А тут его даже уже русифицировали: http://www.linux.org.ru/forum/general/6069109 :D

ryzhov_al
11-02-2012, 11:33
З.Ы. А тут его даже уже русифицировали: http://www.linux.org.ru/forum/general/6069109 :DТам четыре старых патча годичной давности.
В первых двух смысла нет потому, что на роутере все пакеты собираются без Native Language Support.
Во вторых двух смысла нет потому, что они уже реализованы в версии 1.0.22.

Как только версия minidlna обновится в транке OpenWRT, она обновиться в репозитории. Стараюсь не бежать впереди OpenWRT без веских причин.

skuwakin
11-02-2012, 14:01
а есть успешный опыт просмотра через minidlna IPTV?

ryzhov_al
11-02-2012, 14:07
а есть успешный опыт просмотра через minidlna IPTV?No remux. No recode. Только файлы.
Если нужно IPTV, то ставьте mediatomb, pshare, xupnpd.

skuwakin
11-02-2012, 15:08
спасибо за ответ. Да xupnpd у меня давно стоит. Классная вещь! Просто недавно обнаружилась одна большая непонятка на Full HD IP-TV каналах. Вот и интересно было сравнить. Потому как ситуёвина тёмная, и пока не очень понятно в какую сторону копать...

thefree
18-03-2012, 18:36
Потеряна зависимость libbz2 у Вас в реп.,
1.0.24 - Released 14-Feb-2012
--------------------------------
- Fix playlist browsing with no SortOrder specified.
- Fix inotify detection of caption file removal.
- Handle an empty DeviceID from Zyxel media player SOAP request.
- Fix false positives in playlist caching optimization when we have duplicate file names in different directories.
- Trim the camera model name extracted from EXIF tags.
- Add support for user-configurable log level settings.
- Add DLNA.ORG_FLAGS support.

skuwakin
18-03-2012, 18:44
Доброго времени суток. Столкнулся с неудобством... Плеер в ТВ самсунг D серии не понимает редирект. Существуют ли способы борьбы с этим. Подскажите плиз в каком хоть направлении копать (если это вообще возможно).

Zyxmon
18-03-2012, 19:50
...Столкнулся с неудобством... Плеер в ТВ самсунг D серии не понимает редирект. ....
В чем это проявляется? Имею самсунги D серии и два экземпляра minidlna (запущены правда на двух других платформах, не асусе).

skuwakin
18-03-2012, 20:02
В чем это проявляется? Имею самсунги D серии и два экземпляра minidlna (запущены правда на двух других платформах, не асусе).

спасибо за ответ. Да это модератор таво... перенес новую тему сюда... хотя она к этому серверу ни сном , ни духом.

Я имел ввиду виджет nstreamplayer или его мод. Все они вызывают для проигрывания потоков стандартный плеер, так вот он не умеет обрабатывать редирект... Отсюда и вопросы...

MMX2
28-03-2012, 07:10
Гуру, посдкажите, а как исключить папку из списка сканируемых?
Имеем папку Films, в которой есть 30 подпапок. Так вот, мне надо чтобы minidlna из этих 30 не сканировал 3 штуки. Ради этого прописывать руками оставшиеся 27 не хочется:) Може быть можно как то запретить сканировать подпапку?
Спасибо!

Zyxmon
28-03-2012, 07:24
Гуру, посдкажите, а как исключить папку из списка сканируемых?
Имеем папку Films, в которой есть 30 подпапок. Так вот, мне надо чтобы minidlna из этих 30 не сканировал 3 штуки. Ради этого прописывать руками оставшиеся 27 не хочется:) Може быть можно как то запретить сканировать подпапку?
Спасибо!
Сделать патч и пересобрать. Вот пример патча, когда пропускаются директории, содержащие символы "@eaDir". Это патч для NAS'а, который в таких паках создает миниатюры изображений.


--- scanner.c.orig 2012-03-16 12:21:06.000000000 +0400
+++ scanner.c 2012-03-16 12:23:03.000000000 +0400
@@ -774,7 +774,7 @@
{
type = resolve_unknown_type(full_path, dir_type);
}
- if( (type == TYPE_DIR) && (access(full_path, R_OK|X_OK) == 0) )
+ if( (type == TYPE_DIR) && (access(full_path, R_OK|X_OK) == 0) && strstr(full_path,"@eaDir")==NULL)
{
insert_directory(name, full_path, BROWSEDIR_ID, (parent ? parent:""), i+startID);
sprintf(parent_id, "%s$%X", (parent ? parent:""), i+startID);
--- inotify.c.orig 2012-01-31 05:17:09.000000000 +0400
+++ inotify.c 2012-03-16 12:28:44.000000000 +0400
@@ -428,6 +428,11 @@
struct media_dir_s * media_path;
struct stat st;

+ if(strstr(path,"@eaDir"))
+ {
+ DPRINTF(E_WARN, L_INOTIFY, "Scipping path with @eaDir %s \n", path);
+ return -1;
+ }
if( access(path, R_OK|X_OK) != 0 )
{
DPRINTF(E_WARN, L_INOTIFY, "Could not access %s [%s]\n", path, strerror(errno));

MMX2
28-03-2012, 07:27
Сделать патч и пересобрать.
Спасибо!
грустно это... пойду ручками прописывать 27 дирректорий.

ryzhov_al
28-03-2012, 07:41
Сделать патч и пересобрать. Вот пример патча, когда пропускаются директории, содержащие символы "@eaDir".

+ DPRINTF(E_WARN, L_INOTIFY, "Skipping path with @eaDir %s \n", path);

Спасибо!
грустно это... пойду ручками прописывать 27 дирректорий.Ещё стоит попробовать два пути сокрытия папок:

начинать имена скрываемых директорий с точки, например /tmp/haddisk/video/.porn
запускать minidlna с пониженными привелегиями для того, чтобы у него не хватало прав для доступа к скрываемым папкам.
Вы же в Linux'е!

MMX2
28-03-2012, 07:44
запускать minidlna с пониженными привелегиями для того, чтобы у него не хватало прав для доступа к скрываемым папкам.
[/LIST]Вы же в Linux'е!

"А вот с этого места я попрошу вас рассказывать все очень подробно" (С)
Пониженные привелегии - от имени юзверя nobody? нет?:)

tridog
28-03-2012, 08:38
"А вот с этого места я попрошу вас рассказывать все очень подробно" (С)
Пониженные привелегии - от имени юзверя nobody? нет?:)

Не обязательно. Лучше все же создать для него отдельного юзера (см. в сторону adduser), от имени которого и запускать демона. Т.е. например создать пользователей smb и dlna, пользователю smb дать права чтения и записи в эти папки, пользователю dlna - запретить даже чтение из них.

Под пользователем smb стартовать самбу, полд пользователем dlna стартовать minidlna. В результате Ваша папка "porn" будет доступна при входе по самбе (даже на запись), но не будет сканироваться minidlna и не будет показываться на телевизоре.

ryzhov_al
28-03-2012, 08:38
"А вот с этого места я попрошу вас рассказывать все очень подробно" (С)Нет. Вы написали свой пост через три минуты после моего, а значит даже не пытались найти решение самостоятельно.
Раз вы добрались до консоли роутера, то будьте добры обрести хотя бы базовый набор знаний по Linux.

Пониженные привелегии - от имени юзверя nobody? нет?:)Да, как вариант.

MMX2
28-03-2012, 08:41
tridog, спасибо!
ryzhov_al, как это не пытался? :eek: я же задал Вам вопрос = попытка найти решение:D
А если серьезно, то я в прошлом посте только про nobody и спрашивал.

ryzhov_al
28-03-2012, 08:56
А если серьезно, то я в прошлом посте только про nobody и спрашивал.Я был не прав, извините.

MMX2
28-03-2012, 08:57
Я был не прав, извините.

Все ок!
Приеду домой буду разбираться.

MMX2
28-03-2012, 14:04
Не обязательно. Лучше все же создать для него отдельного юзера (см. в сторону adduser), от имени которого и запускать демона. Т.е. например создать пользователей smb и dlna, пользователю smb дать права чтения и записи в эти папки, пользователю dlna - запретить даже чтение из них.

Под пользователем smb стартовать самбу, полд пользователем dlna стартовать minidlna. В результате Ваша папка "porn" будет доступна при входе по самбе (даже на запись), но не будет сканироваться minidlna и не будет показываться на телевизоре.

Спасибо! Не смог разобратся как запретить доступ к папке конкретному пользователю (можно ли это вообще сделать?), поэтому сделал так:
-ручками завел юзверя dlna
-нужной папке меняем владельца на (например) mmx2:

chown mmx2 "/tmp/mnt/Films/Films/Taxi
-запрещаем всем остальным доступ:

chmod 700 "/tmp/mnt/Films/Films/Taxi
(вот тут не уверен - возможно надо было давать права 770)
-даем доступ к ДБ всем:

chmod -R 777 /opt/var/cache
-запускаем от имени dlna:

/opt/bin/sudo -u dlna /opt/bin/minidlna -f /opt/etc/minidlna.conf

Собственно для чего все это было нужно - на диске лежит много копий (именно копий, а не рипов) DVD и BD, которые в minidlna некорректно сканируются, а главное отображаются в телеке с названием VIDEO_TS и др.
Запретив доступ ко всем таким папкам я убрал их из выдачи DLNA.
Осталось только (пока:) 2 вопроса:
1. Таки можно ли запретить доступ к папке конкретному юзверю?
2. Как настроить в minidlna каталогизацию - т.е. чтобы на телеке были разные категории (папки) фильмов а не их "братская могила"?
Спасибо!

Lex_61
31-03-2012, 15:02
1. Таки можно ли запретить доступ к папке конкретному юзверю?

Как вариант, я бы сделал этого юзверя владельцем папки, а правами запретил доступ владельцу, разрешив группе и остальным) Хак, конечно, но тем не менее может прокатить.

MMX2
31-03-2012, 15:10
Как вариант, я бы сделал этого юзверя владельцем папки, а правами запретил доступ владельцу, разрешив группе и остальным) Хак, конечно, но тем не менее может прокатить.

Оригинально!:) попробую!

Lex_61
03-12-2012, 17:58
Только у меня одного такая проблема с сабжем? После запуска, уже когда просканирует все файлы, начинает жрать весь процессор, будто холостые циклы гоняет.
При этом свои функции (раздача файлов по dlna) выполняет. Нагуглил, что у кого-то сканер натыкался на неугодный файл, и уходил в астрал.
Пробовал натравить на пустой каталог, эффект тот же. Прошивка 1.9.2.7-rtn-r3702, сервер minidlna_cvs20090413-2_mipsel.ipk

P.S. Заметил, если выключить этот флаг в конфиге:

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes
то проц не грузится. Будто косяк какой с блокировками inotify. С выключенной опцией сервер мало юзабелен. Есть мысли, куда копать?

(p.p.s. почему-то не получилось отредактировать предыдущий пост. Не работает кнопка "save")

lly
04-12-2012, 06:55
Прошивка 1.9.2.7-rtn-r3702, сервер minidlna_cvs20090413-2_mipsel.ipk

P.S. Заметил, если выключить этот флаг в конфиге:
# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes
то проц не грузится. Будто косяк какой с блокировками inotify. С выключенной опцией сервер мало юзабелен. Есть мысли, куда копать?

С такой постановкой вопроса - в сторону чтения форума и изучения чем же Optware (или откуда вы взяли minidlna трехлетней давности) отличается от Entware. Далее - strace, gdb и прочие отладочные инструменты.

di53
01-02-2013, 23:01
Доброго времени суток уважаемые форумчане,
обращаюсь к Вам с просьбой подсказать, как-же все-же прошить wl-500gP2, что-бы с жесткого подключенного к роутеру, смотреть фильмы через телек Samsung 7 серии. DLNA и AllShare поддерживает.
Так и не нашёл полной инструкции, где шаг за шагом можно это осуществить. Будьте любезны, ткнуть носом, или подсказать с какой прошивке и какой скрипт для мултимедиа сервера поставить.

falseflags
10-07-2013, 23:17
Здравствуйте!
Прошивка tomato, периодически слетает minidlna сервер.
Решил написать в планировщике задач (scheduler) вот такой скрипт:

pr1=`pidof minidlna`
if [!"$pr1"]
then
minidlna -f /etc/minidlna.conf
fi

Поставил выполнение ежеминутно.
Но почему-то не работает. Подскажите, кто в линуксе понимает, я сам чайник(

ekzotic
26-09-2013, 08:53
Minidlna Entware.
При добавлении файлов иногда появляются дупликаты в базе. Существует ли решение данной проблемы?

yuoras
12-10-2013, 11:58
Вот круто было бы, если бы , была возможность с TV ещё и файлы(фильмы, музыку) удалять