<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF124%3AUPnP</id>
		<title>LXF124:UPnP - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF124%3AUPnP"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:UPnP&amp;action=history"/>
		<updated>2026-05-13T00:16:39Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:UPnP&amp;diff=10986&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Клиенты UPnP */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:UPnP&amp;diff=10986&amp;oldid=prev"/>
				<updated>2010-10-29T16:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Клиенты UPnP&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 16:45, 29 октября 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Чтобы убедиться в его работоспособности, запустите сервер и удалите материалы из базы, которую хотите протестировать. Теперь добавьте туда один файл в формате, который вы хотите перекодировать. Это заставит ''MediaTomb'' обновить параметры формата, и вы сможете затем протестировать клиент UPnP и увидеть, работает ли конвертация. Запустив вышеприведенные команды на сервере, вы сможете отследить работу инструментов декодирования и определить его проблемы. Вы должны увидеть, что команда ''flac'' на какие-то секунды заберет максимум ресурсов, а затем ваш UPnP-клиент должен начать проигрывать звук. На PS3 наши файлы ''FLAC'' предстанут, к примеру, как файлы ''PCM'', и понадобится пара секунд для начала их перекодирования, но после этого вы услышите звук и убедитесь, что ''MediaTomb'' делает свое дело.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Чтобы убедиться в его работоспособности, запустите сервер и удалите материалы из базы, которую хотите протестировать. Теперь добавьте туда один файл в формате, который вы хотите перекодировать. Это заставит ''MediaTomb'' обновить параметры формата, и вы сможете затем протестировать клиент UPnP и увидеть, работает ли конвертация. Запустив вышеприведенные команды на сервере, вы сможете отследить работу инструментов декодирования и определить его проблемы. Вы должны увидеть, что команда ''flac'' на какие-то секунды заберет максимум ресурсов, а затем ваш UPnP-клиент должен начать проигрывать звук. На PS3 наши файлы ''FLAC'' предстанут, к примеру, как файлы ''PCM'', и понадобится пара секунд для начала их перекодирования, но после этого вы услышите звук и убедитесь, что ''MediaTomb'' делает свое дело.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Клиенты UPnP==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/ins&gt;==Клиенты UPnP&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Как ни странно, существует не так много клиентов UPnP, пригодных для Linux. Лучшим из используемых нами была комбинация музыкального плейера ''Rhythmbox'' из Gnome с модулем расширения ''Coherence. Coherence'' – это построенный на ''Python'' каркас UPnP, предоставляющий при его индивидуальном использовании функциональность сервера, а при использовании с ''Rhythmbox'' – еще и функциональность клиента. Он позволяет ''Rhythmbox'' проигрывать ваш контент с сервера, но также может передавать его на другие плейеры сети, даже на ''Microsoft Media Player''. Установить ''Coherence'' можно через менеджер пакетов вашего дистрибутива (или с http://coherence.beebits.net); затем загляните в меню '''Edit &amp;gt; Plugins''' [Правка &amp;gt; Модули] окна ''Rhythmbox''. Вы найдете его в списке как '''DNLA/UPnP Sharing And Control Support'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Как ни странно, существует не так много клиентов UPnP, пригодных для Linux. Лучшим из используемых нами была комбинация музыкального плейера ''Rhythmbox'' из Gnome с модулем расширения ''Coherence. Coherence'' – это построенный на ''Python'' каркас UPnP, предоставляющий при его индивидуальном использовании функциональность сервера, а при использовании с ''Rhythmbox'' – еще и функциональность клиента. Он позволяет ''Rhythmbox'' проигрывать ваш контент с сервера, но также может передавать его на другие плейеры сети, даже на ''Microsoft Media Player''. Установить ''Coherence'' можно через менеджер пакетов вашего дистрибутива (или с http://coherence.beebits.net); затем загляните в меню '''Edit &amp;gt; Plugins''' [Правка &amp;gt; Модули] окна ''Rhythmbox''. Вы найдете его в списке как '''DNLA/UPnP Sharing And Control Support'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:UPnP&amp;diff=10985&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:UPnP&amp;diff=10985&amp;oldid=prev"/>
				<updated>2010-10-29T16:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Hardcore Linux''' Проверьте себя на крутом проекте для продвинутых пользователей&lt;br /&gt;
&lt;br /&gt;
==UPnP: Вещаем медиа==&lt;br /&gt;
&lt;br /&gt;
: Передавайте музыку, видео и фотографии с вашей Linux-машины на все ящики с логотипом DLNA, под руководством '''Грэма Моррисона'''.&lt;br /&gt;
&lt;br /&gt;
Мобильные телефоны, игровые консоли, телевизоры и десятки других современных устройств теперь умеют воспроизводить поток медиа-данных с вашей Linux-машины. Это стало возможным благодаря магии стандарта UPnP, или, полностью, Universal Plug and Play. В отличие от решения проблем Вселенной масштаба Стивена Хокинга, на что намекает имя спецификации, UPnP создан, чтобы помочь медиа-совместимым устройствам общаться друг с другом, не тратя всю свою жизнь на изучение командной строки. Например, в прошлом номере в статье [[LXF123:Project#.D0.A1.D0.BE.D0.B1.D0.B8.D1.80.D0.B0.D0.B5.D0.BC_.D0.BC.D0.B5.D0.B4.D0.B8.D0.B0-.D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80|Семь крутых Linux-проектов]] мы настроили UPnP-сервер на базе популярного приложения ''MediaTomb'', и пояснения заняли всего страницу. Если вы не сталкивались с этой программой ранее, то она тесно связана со стандартом DLNA – сертифицированной реализацией протокола UPnP, применяемой различных телевизионных и игровых приставках.&lt;br /&gt;
&lt;br /&gt;
===Больше, чем с виду===&lt;br /&gt;
&lt;br /&gt;
Но установка пакета и его настройка – лишь вершина айсберга. Как и в большинстве случаев, на первый взгляд все просто, а внимательное изучение обнаруживает скрытую сложность. С UPnP это становится очевидным, как только вы захотите подстроить медиа-данные под свое оборудование или даже заставить работать проблемную аппаратуру. Последним мы и займемся.&lt;br /&gt;
&lt;br /&gt;
Хотя UPnP претендует на решение вопросов взаимодействия, проблема совместимости форматов остается. Иными словами, если ваш UPnP-клиент не совместим с каким-либо форматом, ничего не поделаешь – поможет только ручная настройка, и ''MediaTomb'' тут особенно подходит благодаря всеохватывающему конфигурационному файлу. Если вы установили MediaTomb через менеджер пакетов, то скорее всего этот файл находится в '''/etc/mediatomb/config.xml'''. А если вы запускаете ''MediaTomb'' от имени обычного пользователя (что целесообразно, с учетом непредсказуемой природы сервера), файл можно найти в домашней директории спрятанным под '''.mediatomb'''. Сделайте его копию и сохраните в надежном месте, чтобы позднее вернуться к рабочей конфигурации, если приключится беда. Потом откройте файл в вашем любимом текстовом редакторе.&lt;br /&gt;
&lt;br /&gt;
===Борьба с эксцессами===&lt;br /&gt;
&lt;br /&gt;
При виде конфигурационного файла легко и оробеть: в установке по умолчанию он содержит 112 строк и написан как вложенный XML. Но редактирование параметров в нем не сложнее, чем в обычном файле подобного рода. Просто следите, чтобы добавляемые или изменяемые записи были привязаны к правильным элементам и не ломали структуру файла. К примеру, можно исправить раздражающую манеру ''MediaTomb'' использовать при запуске каждый раз другой порт, просто добавив одну строку. Ее нужно вставить после строки '''&amp;lt;server&amp;gt;''', так как она имеет тот же уровень вложенности, что и '''&amp;lt;name&amp;gt;''' с '''&amp;lt;home&amp;gt;''', но не ниже; то есть она не должна попасть в секцию '''&amp;lt;storage&amp;gt;'''. Отступив несколько строк после '''&amp;lt;server&amp;gt;''', наберите следующее:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;port&amp;gt;5050&amp;lt;/port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для быстрой проверки, что вставленное вами работает как планировалось, сохраните конфигурационный файл и наберите в консоли ''mediatomb''. Сервер запустится, и в выводе консоли должно появиться нечто вроде&lt;br /&gt;
&lt;br /&gt;
 2009-08-13 08:42:58 INFO: 192.168.160.128:5050&lt;br /&gt;
&lt;br /&gt;
В данной строке обычно виден номер случайного порта для доступа к web-интерфейсу ''MediaTomb'', но отныне вы можете безбоязненно создать в своем браузере закладку&lt;br /&gt;
http://192.168.160.128:5050, потому что порт теперь навеки будет '''5050'''. По идее, ''MediaTomb'' следовало бы вести себя так по умолчанию; но хорошо уже и то, что такое поведение поддается настройке.&lt;br /&gt;
&lt;br /&gt;
===Передаем на PlayStation 3===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=''MediaTomb'' использует ''JavaScript'' для организации различных медиа-файлов в коллекции и представления их списков клиенту. В результате вы можете модифицировать JS-файлы «под себя», задав нужные&lt;br /&gt;
параметры.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
После задания статического порта, следующим важным исправлением, в котором нуждается&lt;br /&gt;
конфигурационный файл, будет добавление совместимости с PlayStation 3. Как и игровая&lt;br /&gt;
приставка Microsoft Xbox 360, PS3 может воспроизводить поток фильмов, музыки и фотографий с UPnP-сервера, но в отличие от 360, эта возможность по умолчанию выключена. К счастью, заставить ее работать легко в любой существующей версии.&lt;br /&gt;
Найдите строку, содержащую '''&amp;lt;protocolInfo extend= “no”/&amp;gt;''' и замените '''“no”'''&lt;br /&gt;
на '''“yes”''', а потом перезапустите сервер для включения совместимости с PlayStation 3. Вы должны увидеть сервер ''MediaTomb'' в списке&lt;br /&gt;
'''Photos''' [Фото], '''Music''' [Музыка] или '''Videos''' [Видео] меню PlayStation.&lt;br /&gt;
&lt;br /&gt;
Но здесь-то и проявляют себя ограничения клиента типа PS3. Если у вас смешанная &lt;br /&gt;
коллекция медиа-файлов, есть хороший шанс нарваться на формат, который PS3 не сможет&lt;br /&gt;
распознать и, как результат, воспроизвести. UPnP задает протокол для взаимного&lt;br /&gt;
общения устройств, но не гарантирует совместимость форматов. Для воспроизведения&lt;br /&gt;
на PS3 лучшим форматом будет '''DivX''' – а он не работает при использовании конфигурационного файла ''MediaTomb'' по умолчанию. Так вот, пролистайте строки&lt;br /&gt;
в закомментированных разделах и найдите там '''&amp;lt;mappings&amp;gt;'''. Эта секция используется&lt;br /&gt;
''MediaTomb'' для сопоставления расширения файлов MIME-типу, чтобы при передаче файла&lt;br /&gt;
на медиа-клиент использовались корректные переводы и мета-данные. MIME-тип уникален для каждого формата и используется для описания его частных особенностей, таких&lt;br /&gt;
как аудио, видео и изображение, а также кодеков, необходимых для воспроизведения&lt;br /&gt;
файла. &lt;br /&gt;
&lt;br /&gt;
Единственная строка, которую нужно раскомментировать для работы на PlayStation с AVI-файлами, проецирует их на MIME-тип '''DivX. AVI''', как и '''OGG''', может&lt;br /&gt;
инкапсулировать медиа-данные, сжатые различными кодеками, и эту информацию нельзя&lt;br /&gt;
извлечь из расширения файла. Например, нет способа определить, что некий AVI-файл закодирован '''DivX'''. ''MediaTomb'' хладнокровно передает все AVI-файлы на клиент,&lt;br /&gt;
не разбирая, ''DivX'' они или нет; в результате PlayStation или другой клиент выдают ошибку, пытаясь декодировать файл как '''DivX'''. Это подводит нас к следующей теме:&lt;br /&gt;
обходу этой проблемы за счет перекодирования неподдерживаемого формата в  поддерживаемый, в реальном времени.&lt;br /&gt;
&lt;br /&gt;
===Тест на совместимость с FIFO===&lt;br /&gt;
&lt;br /&gt;
Если вы хотите протестировать, работает ли выбранный вами конвертор с FIFO и ''MediaTomb'', воспользуйтесь командой ''mkfifo'' из командной строки. Для создания&lt;br /&gt;
специального FIFO-файла, пригодного для передачи данных в плейер и из него, наберите&lt;br /&gt;
&lt;br /&gt;
 mkfifo /tmp/fifo&lt;br /&gt;
&lt;br /&gt;
Учтите, что вам нужен доступ на чтение и запись к директории '''/tmp'''. Обычно это уже настроено в большинстве дистрибутивов. Заглянув в директорию '''/tmp''' с помощью&lt;br /&gt;
команды ''ls -l'', вы увидите там новый файл с типом '''p''' (от pipe) в первой колонке вывода. Этот расшифровывается как «именованный канала» и показывает, что команда ''mkfifo'' сработала правильно. Теперь воспользуемся той же командой&lt;br /&gt;
''flac'', что и при перекодировании в основной части урока. Для этого запустите&lt;br /&gt;
ее и задайте вывод в наш FIFO-файл: &lt;br /&gt;
&lt;br /&gt;
 flac -d -s -f file.flac -o /tmp/fifo&lt;br /&gt;
&lt;br /&gt;
Без прикрепления процесса к выводу в файл '''/tmp/fifo''' ничего не произойдет. Процесс ''flac'' ожидает считывания данных, и мы можем сделать это с помощью новой&lt;br /&gt;
версии ''vlc'' или простой команды ''aplay'' из пакета утилит ''ALSA''. Наберите&lt;br /&gt;
для примера &lt;br /&gt;
&lt;br /&gt;
 aplay /tmp/fifo&lt;br /&gt;
&lt;br /&gt;
Появится сообщение, что ''aplay'' обнаружил аудиопоток, и вы услышите звук из файла.&lt;br /&gt;
Когда проигрывание закончится, оба процесса завершат работу, тем самым удостоверив,&lt;br /&gt;
что ваш конвертор и ''MediaTomb'' будут работать по принятой FIFO-схеме.&lt;br /&gt;
&lt;br /&gt;
===Перекодируем медиа-форматы===&lt;br /&gt;
&lt;br /&gt;
Возможность конвертации одного формата в другой – одна из лучших сторон ''MediaTomb''. Многие другие серверы UPnP не способны выполнить трюк, который мы продемонстрируем, использовав все те же описания MIME-типов, чтобы включить проигрывание '''DivX''' на PS3. Идея такая: создать собственный MIME-тип и затем употребить дополнительную секцию в конфигурационном файле на объяснение ''MediaTomb'' способа конверта ции нашего MIME-типа в поддерживаемый клиентом. Внутри этой секции мы вызовем внешний инструмент, который и проделает всю черную работу. Сгодится любая знакомая вам утилита, которая поддерживает FIFO. Это особый вид перенаправления вывода, доступный как часть файловой системы, а не как результат одиночной команды. ''MediaTomb'' использует канал FIFO для передачи данных в и из инструмента, выполняющего преобразование. Основными FIFO-совместимыми медиа-конверторами являются ''FFmpeg, Mencoder'' и ''VLC'', но вы можете также использовать инструменты командной строки – например, ''Oggdec'' или ''Flac''; на последнем мы и построим наш профиль.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=Если в вашей системе включен ''Inotify'' и ''MediaTomb'' скомпилирован с опцией ''Inotify'', то он не будет требовать запускать сканирование папок вручную и сможет добавлять файлы без привлечения сторонних средств.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Файлы '''FLAC''' – это сжатые аудиоданные, которые не жертвуют качеством звука в угоду экономии места. Это великолепный формат для музыки с широким частотным диапазоном исходной записи, например, для джаза или классической, но распространяется он вяло, и большинство UPnP-клиентов не воспроизводят FLAC-файлы. Перекодирование '''FLAC''' в формат, понимаемый вашим UPnP-клиентом – лучшее из возможных решений (в отсутствие родной поддержки), потому что оно позволяет хранить любимую музыку во '''FLAC''' и одновременно воспроизводить ее на требуемом устройстве. Единственной модификацией будет добавление параметров перекодирования в ''MediaTomb''. Если вы планируете перекодировать FLAC-файлы для использования на PS3, то вам нужен самый последний релиз ''MediaTomb'' (0.12). Мы создадим профиль под данную версию ''MediaTomb'' и PlayStation 3, но он также должен сработаться с большинством других клиентов UPnP. А если этого не произойдет, его легко адаптировать.&lt;br /&gt;
&lt;br /&gt;
===Создаем профиль===&lt;br /&gt;
&lt;br /&gt;
Для начала добавим новый MIME-тип для нашего преобразования внутри раздела '''&amp;lt;mimetype-profile-mappings&amp;gt;''' конфигурационного файла. Например, для конвертации FLAC-аудиофайлов в WAV допишите следующую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;transcode mimetype=”audio/x-Flac” using=”Flac2wav”/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Она указывает ''MediaTomb'' на профиль перекодирования ''Flac2wav'', который мы собрались создать, и чтобы ''MediaTomb'' не пропускал данную секцию, измените '''«no»''' на '''«yes»''' в вышележащей строке '''&amp;lt;transcoding enabled=«no»&amp;gt;'''. Новый профиль должен быть добавлен в раздел '''&amp;lt;profiles&amp;gt;''', чуть ниже раздела, в котором мы работаем. Там мы зададим команды для перекодирования одного медиа-формата в другой. В конфигурационном файле предусмотрено несколько примеров, и их легко скопировать или пересоздать. Один из них мы адаптировали для передачи потока ''FLAC'' на PS3:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;profile name=”Flac2wav” enabled=”yes” type=”external”&amp;gt;&lt;br /&gt;
   &amp;lt;mimetype&amp;gt;audio/L16&amp;lt;/mimetype&amp;gt;&lt;br /&gt;
   &amp;lt;accept-url&amp;gt;no&amp;lt;/accept-url&amp;gt;&lt;br /&gt;
   &amp;lt;first-resource&amp;gt;no&amp;lt;/first-resource&amp;gt;&lt;br /&gt;
   &amp;lt;hide-original-resource&amp;gt;yes&amp;lt;/hide-original-resource&amp;gt;&lt;br /&gt;
   &amp;lt;sample-frequency&amp;gt;44100&amp;lt;/sample-frequency&amp;gt;&lt;br /&gt;
   &amp;lt;audio-channels&amp;gt;2&amp;lt;/audio-channels&amp;gt;&lt;br /&gt;
   &amp;lt;agent command=”flac” arguments=”-dfs ----force-raw-format&lt;br /&gt;
   ----endian=big ----sign=signed -o %out %in”/&amp;gt;&lt;br /&gt;
   &amp;lt;buffer size=”1048576” chunk-size=”131072” fill- size=”262144”/&amp;gt;&lt;br /&gt;
 &amp;lt;/profile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первая строка этого фрагмента задает описание профиля, активирует его и присваивает ему имя. Оно должно совпадать с указанным для MIME-типа '''audio/x-Flac''', а мы там использовали ''Flac2wav''. Следующая строка задает MIME-тип, создаваемый нашим процессом конвертации. Мы бы охотнее переконвертировали наш ''FLAC'' в WAV-файл, '''audio/x-wav''', но PS3 пока не воспроизводит их. Вместо этого используем «сырые» (raw) аудиоданные: их PS3 поддерживает. Если вы захотите создать WAV-совместимый вывод, просто измените MIME-тип.&lt;br /&gt;
&lt;br /&gt;
===Передаем радио===&lt;br /&gt;
&lt;br /&gt;
Строка '''&amp;lt;accept-url&amp;gt;''' интересна сама по себе, потому что позволяет ''MediaTomb'' действовать как прокси между онлайн-ресурсами и клиентом UPnP. Самой частое применение этого параметра – передача потока интернет-радио, который затем можно перекодировать в родной формат, поддерживаемый вашим UPnP-клиентом – конечно, при наличии конвертора. Ссылки можно добавить в базу данных ''MediaTomb'' нажатием символа плюс ('''+''') в web-интерфейсе и выбором '''Внешняя ссылка''' [External Link [URL] из выпадающего меню '''Тип ресурса''' [Resource Type]. Затем вам нужно вставить URL, дать потоку имя и указать MIME-тип, если он вам известен. Так как вы конвертируете не FLAC-радиостанцию (а мы таких даже не знаем), можете оставить параметр '''accept-url''' установленным в '''no'''.&lt;br /&gt;
&lt;br /&gt;
Параметр '''first-resource''' выпихивает перекодированную версию файла в начало списка, если ваш плейер поддерживает более одного формата. Это требуется некоторым проигрывателям, умеющим отображать только первый файл, но о PS3 беспокоиться нечего, поскольку мы вдобавок задали '''&amp;lt;hide-original-resource&amp;gt;''', который и скрывает от PS3 исходные файлы. Теоретически они и так не должны бы отображаться в PS3, потому что формат '''FLAС''' здесь не поддерживается, но PlayStation иногда игнорирует эту логику и отображает файлы как поврежденные, если их не скрыть.&lt;br /&gt;
&lt;br /&gt;
===Особенности raw-формата===&lt;br /&gt;
&lt;br /&gt;
Раз мы конвертируем звук в формат '''raw''', нужно точно описать наш поток битов, чтобы плейер распознал их смысл. Для большинства форматов этот шаг не нужен, потому что они разумно включают эту информацию в заголовок потока, но «сырые» данные лишены подобной роскоши. В итоге понадобится указать как частоту дискретизации, так и число каналов в потоке; это делается с помощью элементов '''&amp;lt;sample-frequency&amp;gt;''' и '''&amp;lt;audio-channels&amp;gt;'''. Заданные здесь числа обычно берутся из вывода команды, используемой для конвертации, и нам даже не обязательно вникать в формат исходного FLAC-файла. А вот в следующей строке творится самое волшебство – она задает команду и параметры для генерации ожидаемого вывода:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;agent command=”flac” arguments=”-d -s -f ----force-raw-format ----endian=big ----sign=signed -o %out %in”/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом примере использована команда ''flac'', которая является частью стандартного пакета ''Flac'' и по идее устанавливается вместе с библиотеками ''Flac''. Вы можете набрать ''flac -h'' в командной строке, чтобы убедиться в ее присутствии и посмотреть доступные аргументы. Параметры '''-d -s -f''' велят ''Flac'' молча распаковать поток и в любом случае перезаписать им файл назначения. Это необходимо, потому что ''MediaTomb'' использует FIFO, и ''Flac'' увидит, что файл уже существует. Мы также задаем параметры вывода, которые для формата raw зависят от вашей аппаратной конфигурации. ''MediaTomb'' заменит '''%out''' и '''%in''' исходным файлом и FIFO-каналом назначения для конвертации, и вы можете протестировать команду, подставив реальные пути к файлам. Наконец, элемент '''&amp;lt;buffer size&amp;gt;''' скопирован сюда из других профилей. Он дает перекодировщику время на обработку файла, пока в вашей системе происходят другие вещи. Правда, добавится задержка воспроизведения, зато исчезнут заикания. Это важно, если вы перекодируете видео или используете маломощный сервер, так как параметр дает ''MediaTomb'' больше времени на декодирование сложных участков, и размер буфера задает максимальный размер участка.&lt;br /&gt;
&lt;br /&gt;
===Воспроизведение===&lt;br /&gt;
&lt;br /&gt;
Единственная проблема при добавлении нового профиля заключается в том, что получение работающей конфигурации достигается методом проб и ошибок, поскольку ''MediaTomb'' дает очень мало информации о том, что было неправильно в очередном формате. Лучший способ протестировать новый профиль – это попробовать его.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться в его работоспособности, запустите сервер и удалите материалы из базы, которую хотите протестировать. Теперь добавьте туда один файл в формате, который вы хотите перекодировать. Это заставит ''MediaTomb'' обновить параметры формата, и вы сможете затем протестировать клиент UPnP и увидеть, работает ли конвертация. Запустив вышеприведенные команды на сервере, вы сможете отследить работу инструментов декодирования и определить его проблемы. Вы должны увидеть, что команда ''flac'' на какие-то секунды заберет максимум ресурсов, а затем ваш UPnP-клиент должен начать проигрывать звук. На PS3 наши файлы ''FLAC'' предстанут, к примеру, как файлы ''PCM'', и понадобится пара секунд для начала их перекодирования, но после этого вы услышите звук и убедитесь, что ''MediaTomb'' делает свое дело.&lt;br /&gt;
&lt;br /&gt;
==Клиенты UPnP==&lt;br /&gt;
&lt;br /&gt;
Как ни странно, существует не так много клиентов UPnP, пригодных для Linux. Лучшим из используемых нами была комбинация музыкального плейера ''Rhythmbox'' из Gnome с модулем расширения ''Coherence. Coherence'' – это построенный на ''Python'' каркас UPnP, предоставляющий при его индивидуальном использовании функциональность сервера, а при использовании с ''Rhythmbox'' – еще и функциональность клиента. Он позволяет ''Rhythmbox'' проигрывать ваш контент с сервера, но также может передавать его на другие плейеры сети, даже на ''Microsoft Media Player''. Установить ''Coherence'' можно через менеджер пакетов вашего дистрибутива (или с http://coherence.beebits.net); затем загляните в меню '''Edit &amp;gt; Plugins''' [Правка &amp;gt; Модули] окна ''Rhythmbox''. Вы найдете его в списке как '''DNLA/UPnP Sharing And Control Support'''.&lt;br /&gt;
&lt;br /&gt;
''VLC'' также можно заставить сработаться с клиентом UPnP, применив его совместно с престарелым модулем расширения от CyberLink, но нам это не удалось. Проект ''Kinsky'' (http://oss.linn.co.uk/trac/wiki/kinsky) будет лучшим решением, если вы не боитесь сборки приложений из исходников. Это полноценный UPnP-портал, позволяющий контролировать ваше содержимое, а также проигрывать контент с других ресурсов. Лучшим решением будет использование Linux-совместимого NAS, который сделает за вас всю грязную работу. Многие такие устройства могут передавать поток различным клиентам, а также проигрывать ваш контент через USB-динамики, подключенные к NAS.&lt;br /&gt;
&lt;br /&gt;
Если вы хотите использовать альтернативный сервер, то и тут есть выбор. ''MythTV'', к примеру, может передавать контент с использованием протокола UPnP, что будет оптимальным решением, если вы хотите транслировать записи на игровую консоль помимо вашего телевизора. Другой проект, с именем ''Fuppes'', похож на ''MediaTomb''. Оба проекта пытаются обскакать друг друга в возможностях, но в данный момент ''Fuppes'' выступает в роли догоняющего. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>