Объявление

Свернуть
Пока нет объявлений.

Обзор и просмотр файлов из папки для nStream

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Обзор и просмотр файлов из папки для nStream

    Написал скрипт на пхп, который генерирует XML плей лист для nStream****:
    - отобажает медиафайлы и выдаёт на них прямые http ссылки;
    - для m3u/xml делает тоже самое только выставляет тип "плейлист" и значёк ставит как для папки - те плей лист нормально открывается.

    Те можно как в файловом менеджере гулять по папкам и открывать файлы.

    Теперь чтобы смотреть с домашнего сервера (у кого он есть) скаченные киношки не нужно ломать голову и телек, достаточно в телек воткнуть nStream / nStream**** и прописать в кач плей листа ссылку на скрипт.

    Установка и настройка:
    Скачиваем: http://www.netlab.linkpc.net/downloa...ung/browse.php
    кладём на свой сервер в папку доступную по http, выставляем +x (права на запуск).

    В nStream нужно скормить ссылку на плей лист, я добавил в start.xml:
    Код:
    <channel>
    	<title>Browse NAS</title>
    	<playlist_url>http://АДРЕС_СЕРВЕРА/download/Samsun...aylist_url>
    	<description>Browse NAS folders</description>
    	<category_id>3</category_id>
    </channel>
    В скрипте правим пути:
    $basedir="/usr/data/"; /* File system path. */
    Указывает где на диске находится корневая папка для расшаривания телеку.

    $baseurl="/DataStore"; /* URL path. */
    Указывает в url до этой папки.

    Это часть конфига nginx, чтобы было немного понятнее:
    Код:
    		# allow files listing: DataStore
    		location ^~ /DataStore/ {
    			root			/usr/;
    
    			#allow 10.0.0.0/8;
    			#allow 127.0.0.0/8;
    			#allow 169.254.0.0/16;
    			allow 172.16.0.0/12;
    			#allow 192.168.0.0/16;
    			deny all;
    
    			access_log		off;
    			autoindex		on;
    			autoindex_exact_size	on;
    			autoindex_localtime	on;
    		}
    
    		# php in chroot for: Samsung TV
    		location ^~ /download/Samsung_TV/ {
    			root			/usr/local/www/;
    
    			#allow 10.0.0.0/8;
    			#allow 127.0.0.0/8;
    			#allow 169.254.0.0/16;
    			allow 172.16.0.0/12;
    			#allow 192.168.0.0/16;
    			deny all;
    
    			access_log		off;
    
    			# php
    			location ~* \.php$ {
    				include			fastcgi_params;
    				#fastcgi_pass		127.0.0.1:54475;
    				fastcgi_pass		unix:/var/run/rtorrent-fcgi.sock;
    				fastcgi_connect_timeout 30;
    				fastcgi_read_timeout	600;
    				fastcgi_send_timeout	600;
    				fastcgi_ignore_client_abort off;
    				#fastcgi_cache_valid	any 10s;
    				fastcgi_intercept_errors off;
    				fastcgi_index		index.php;
    				fastcgi_param		SCRIPT_FILENAME /usr/local/www$fastcgi_script_name;
    			}
    		}
    Те у меня при открытии http://АДРЕС_СЕРВЕРА/DataStore/
    на диске открывается /usr/DataStore/

    Можно пользоватся любым http сервером, лишь бы он хоть немного php поддерживал и умел шустро отдавать файл.
    Например lighttpd.


    Сюдаже можно добавить генерацию в формате NetPlayer/OVP - подкиньте ссылку на формат, я их себе не ставил.
    Так же думал о взможности конвертить m3u в xml при открытии через скрипт, но пока не очень нужно.


    PS: купил телек 4 дня назад, и лезть внуть с сэмиго прошивкой вообще не охота, потому что меня это дело затянет на недели, а телек я брал из расчёта что это будет монитор для общего просмотра фильмов и IPTV - взял, подключил за 10 минут и забыл об обслуживании. Когда оказалось что там есть своя начинка - решил повременить с подключением к компу.

  • #2
    Re: Обзор и просмотр файлов из папки для nStream

    это типо чтобы смотреть файлы по хттп с компа вместо нормального просмотра по сети, которая есть у телика?
    у телика вроде пропорции не меняются, это поднапрягает но не более того.
    Обсуждение всех нюансов развода в Германии. www.razvod.net

    Комментарий


    • #3
      Re: Обзор и просмотр файлов из папки для nStream

      Да, просмотр по http.

      minidlna - тянет за собой тонну зависимостей во фре, к тому же транскодинг мне нафик не нужен - тогда уже проще медиаплеер на винде собрать и приделать к телеку.
      На винду всякую хрень ставить не хочу.
      Какие ещё варианты?

      Комментарий


      • #4
        Re: Обзор и просмотр файлов из папки для nStream

        ну стоило в первом сообщении написать о цели данной задумки
        Обсуждение всех нюансов развода в Германии. www.razvod.net

        Комментарий


        • #5
          Re: Обзор и просмотр файлов из папки для nStream

          Цель - с минимальными вмешательствами в телек и домашний сервер на фре (торренты, файлопомойка, роутер, сайт...) получить доступ удобный ко всей файлопомойке.

          Если бы телек (как китайские плееры на реалтеке) понимал самбо шары из каробки то это было бы не нужно.

          По формату плей листа - где почитать про последную версию nStream?
          browser_url и video_type - всё ещё используются? они обязательны?

          Комментарий


          • #6
            Re: Обзор и просмотр файлов из папки для nStream

            зависит от того каким плеером ты пользуешся оригиналом или модом
            о оригинале данный раздел, видеотайп не нужен, браузер всё еще используется
            мод обсуждается здесь
            http://www.pristavka.de/index.php/topic,9749.0.html
            Обсуждение всех нюансов развода в Германии. www.razvod.net

            Комментарий


            • #7
              Re: Обзор и просмотр файлов из папки для nStream

              Про мод я уже достаточно знаю.
              Ещё видел size с которым показывать, но не могу вспомнить где, кажется в OVP.

              Комментарий


              • #8
                Re: Обзор и просмотр файлов из папки для nStream

                Доброго времени суток. В развитии темы... Автору спасибо за интересный материал, сам я, когда поставил nstreamplayer_****, тоже озадачился хотелкой смотреть все из одного места... До того пока не хакнул телек, юзал на роутере xupnpd, он спрвляется с этим на ура, но для тяжелых файлов нужен NFS... Посему недавно хакнул своего самца и написал свой первый в жизни php скрипт, который обеспечивает просмотр контента, включая вложенные папки, по NFS. Вот его текст
                Код:
                <?php
                /*-
                 * Используете на свой страх и риск
                 *  
                 * Скрипт предназначен для обеспечения доступа по NFS 
                 * из виджетов NstreamPlayer (original, mod)                  *    
                 * Размещаете данный скрипт на компьютере (роутере) с NFS 
                 * и HTTP серверами в корневой папке Http сервера под именем
                 * nfs2xml.php. Ставите на телек SamyGO, настраиваете на нем 
                 * доступ по NFS к вашему компьютеру (роутеру). Затем в teg 
                 * playlist_url нужного плейлиста вписываете вот такой адрес
                 * 
                 * http://адрескомпа:порт/
                 * nfs2xml.php?
                 * &mount=/dtv/usb/sdb/nfs/192.168.2.1/_tmp_mnt_disc1_1_full_hd/
                 * &source=/tmp/harddisk2/full_hd/
                 * 
                 * где mount - точка монтирования каталога в телевизоре
                 *   source - реальное расположение каталога на компьютере (роутере).
                 * 
                 * При работе был частично использован скрипт TheDark GetSharedMedia
                 * 
                 *  
                 *                 skuwakin@gmail.com 27.03.2012
                 * 
                */
                        $v_path=$_GET['mount'];
                        $path=$_GET['source'];
                        $s_path=$_GET['source'];
                		$files = GetDirFileArray2($path,true,false);         // папки
                		echo ("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");
                		echo ("<items>\r\n");
                		if ($files!=="") {
                			foreach ($files as $f) {
                				echo ("<channel>\r\n");
                				echo ("<title>$f</title>\r\n");
                				echo ("<description>$f</description>\r\n");
                				echo ("<description><![CDATA[<table><tr><td style=\"vertical-align: top\"><img src=\"logos/image.png\" height=\"128\" width=\"128\"/></td>&f</td><h1></h1></td></tr></table>]]></description>\r\n");
                				echo ("<playlist_url>http://".$_SERVER['HTTP_HOST']."/testphp.php?mount=$v_path$f/&source=$s_path$f/</playlist_url>\r\n");
                				echo ("</channel>\r\n");
                			}	
                 		}
                		$files = GetDirFileArray2($path,false,true);         // файлы
                		if ($files!=="") {
                			foreach ($files as $f) {
                                $f_path=str_replace ($s_path,$v_path,$path); 
                				echo ("<channel>\r\n");
                				echo ("<title>$f</title>\r\n");
                				echo ("<logo_30x30>image.png</logo_30x30>\r\n");
                				echo ("<description><![CDATA[$f_path$f]]></description>\r\n");
                				echo ("<stream_url>$f_path$f</stream_url>\r\n");
                				echo ("</channel>\r\n");
                			}	
                		}
                 
                		echo ("</items>\r\n");
                function GetPath($path) {
                	if ($path=="") return null;
                	$a = explode("/",$path);										// защита
                	if ($a[0]!=NetServerName) return null;
                	foreach($a as $e) {
                		if ($e=="." || $e=="..") return null;
                	}
                	$a = array_splice($a,1);
                	$path = implode($a,"/");
                	return SharedMediaDir."/".$path;
                }
                 
                 
                function GetDirFileArray2($path,$isDirs,$isFiles,$ext="") {
                	$arr="";
                	clearstatcache();
                	if (!is_dir($path)) return "";
                 	if (!($dh = opendir($path))) return "";
                  	while (($FileName = readdir($dh)) !== false) { 
                		$f = is_dir($path.$FileName);
                		if (!$isDirs && $f) continue;
                		if (!$isFiles && !$f) continue;
                		if ($FileName=="." || $FileName=="..") continue;
                		if ($ext!="") { if (!preg_match("/\.".$ext."$/i",$FileName)) continue; };
                		$arr[] = $FileName;
                	}
                  closedir($dh);
                	if (is_array($arr)) sort($arr);
                	return $arr;
                }
                 
                ?>

                Комментарий


                • #9
                  Re: Обзор и просмотр файлов из папки для nStream

                  Как xupnpd сделать обзор папок?
                  (я его под фрю портировал, и колупаюсь в системно-сетевых недрах, до таких плюшек пока не добрался)


                  Не, хакать пока не хочу
                  Мне по работе хватает возни с линуксами, в тч иногда приходится пилить прошивку медиаплеера на реалтеке 1077.

                  У меня пока не возникало проблем с просмотром по http: домашний сервер запросто отдаёт более 30 мегаБайт/сек (до 80), честный проводной гигабит, у телека порт вроде сотка, ему больше 11 в принципе не получить.
                  Если будет напрягать - выставлю для TCP htcp алгоритм "передачи".
                  Единственная проблема - не возможность переключения языков.
                  Ещё вылетает иногда на некоторых видео - не разбирался почему.


                  PS: написал багрепорт что телек как наркоман в инет лазит на каждый чих в смартхабе и про косяк с мультикастом: join-leave-join на старте воспроизведения - сказали что не заявлено производителем %)
                  нихрена работать не хотят.

                  Комментарий


                  • #10
                    Re: Обзор и просмотр файлов из папки для nStream

                    чтобы добавить папку в xupnpd, прописываете в xupnpd.lua в секции playlist нечто подобное

                    {'/tmp/mnt/disc0_3/video/Мультики и детские фильмы' , 'Мультики и детские фильмы' },
                    {'/tmp/mnt/disc0_3/video/Экскурсии по Петербургу' , 'Экскурсии по Петербургу' },

                    затем зоходите в вебинтерфейс,xupnpd-playlist выбирайте нужый и из браузера сохраняете его как.... Не знаю как новые версии, но rc6 не умела обрабатывать вложенные папки. Так что пришлось маленько поизвращаться....

                    Дело у меня осложняется тем, что 3.5T висит на стареньком wl-500w и скорость доступа по сети максимальна именно по NFS. Посему и пришлось хакнуть своего самца... Пока не испытал ни одного неудобства от хака. Что называется, сделал и забыл... (тьфу,тьфу, стучу по дереву)

                    вы пишете "выставлю для TCP htcp алгоритм "передачи"." А можно поподробнее про это... Очень интересно.

                    Комментарий


                    • #11
                      Re: Обзор и просмотр файлов из папки для nStream

                      Стандартный тюнинг для линукса:
                      sysctl -w net.core.wmem_max=16777216
                      sysctl -w net.core.rmem_max=16777216

                      modprobe tcp_htcp
                      sysctl net.ipv4.tcp_congestion_control=htcp
                      Это алгоритм определяющий как TCP передаёт данные по сети в случае задережек, потерь и тп.
                      Мои эксперименты показали что htcp лучше всего с этим справляется (отдавать большой поток). htcp сразу выплёвывает с большой скоростью и достаточно быстро восстанавливается до макс скорости в случае потерь.

                      Не, плей листы сохранять не вариант вовсе
                      Я лучше xupnpd допилю чтобы оно нормально браузить давало.

                      Комментарий


                      • #12
                        Re: Обзор и просмотр файлов из папки для nStream

                        cпасибо большое за интересную инфу! Правда, боюсь, что на яджре linux 2.4 такое может не прокатить. ..
                        И еще надо буде в телеке попробовать такой финт проделать... Ведь там же голимый HTTP....

                        Комментарий


                        • #13
                          Re: Обзор и просмотр файлов из папки для nStream

                          Как в разных ядрах не в курсе, но когнесион алгоритмы в линухе уже давным давно переключаются, в старых версиях может только сам способ немного другой, типа echo "htcp" > /proc/...

                          В самом телике, у меня, tcp и так тюнингованный из коробки: телек практически без косяков показывает то, что на компе с виндой IPTV Player показывает с артефактами и переодически теряет.

                          Комментарий


                          • #14
                            Re: Обзор и просмотр файлов из папки для nStream

                            Обновил, добавил дефолтные параметы для воспроизведения:
                            - размер экрана;
                            - аудио дорожка;
                            - размеры буфферов.

                            Забирать по ссылке в шапке.

                            Комментарий


                            • #15
                              Re: Обзор и просмотр файлов из папки для nStream

                              Обязательно ли скрипт ложить на сервер, т.е. можно ли положить его в сам телевизор и запускать оттуда?
                              Спасибо.

                              Комментарий

                              Обработка...
                              X