LINUX.ORG.RU

DLNA и прочие извращения

 


1

2

Есть у меня теперь HP Proliant микросервер gen8.

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

Кроме собственно шары, я слил в одно место все киношки и сериальчики. Это дело доступно также через самбу, но с ридонли правами. Эту вот шару видят все: винда, линукс, vlc плеер на смартфонах. Короче просмотр фильмов в домашней сети реализован.

Но есть у меня телевизор, смарт (как же хочется написать это слово в кавычках), ага...

Поднял я для него minidlna, а эта казлина (телек) не хочет показывать 99% шары. Говорит неподдерживаемый формат или типа того.

Ок...

У телека есть браузер. Набросал я значит простую страничку на пхп, которая генерирует плитку из фильмов, есть тамбнейлы (кадр из середины фильма), можно ходить в подкаталоги, вобщем, такая себе веб файловая система и она доступна в локальной сетке.

Теперь телек воспроизводит почти всё. Но интерфейс управления мышой с пульта телека — то ещё извращенье. А вот эти анальные огораживания, что через длна не хочу не буду, а по хттп через веб-плеер пожалуйста — бесят шопесец.

Я хочу вернуться к отдаче по длна.

Ставить монстров типа плекса — не хочу.

Я попробовал вариант с перепаковкой в другой контейнер без перекодирования. Ну, например из мкв в мп4 — работает и эта тварь начинает жрать контент по длна. Насколько этот путь правилен? Я не уверен что все форматы стримов можно всунуть из «any-container-name» в «mp4».

Или может вы посоветуете что-то менее тяжелое плекса, естественно бесплатное и в любом виде — конпеляций я не боюсь.

Гнумас показывает даже то, что было удалено во время просмотра.

Shamanoo7
()
Ответ на: комментарий от Shamanoo7
media_dir=V,/raids/md0/samba/videos
merge_media_dirs=yes
log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn
root_container=B
port=8200
friendly_name=DLNA
inotify=yes
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
strict_dlna=yes # менял, результата нет
enable_tivo=no # менял, результата нет
notify_interval=895
max_connections=2048

Остальное закоменчено.

Тока я не понимаю зачем тебе этот конфиг когда с других устройств и виндовозов это всё работает, проблемным является только телик.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Jopich1

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

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Тока я не понимаю зачем тебе этот конфиг когда с других устройств и виндовозов это всё работает, проблемным является только телик.

Да, с Гнусмасом было чё-то подобное в самом начале. Погуглил проблему, выставил настройки как рекомендовали. Заработало. Но это было несколько лет назад.

Shamanoo7
()
Ответ на: комментарий от Shamanoo7

root_container=B не уверен, что это надо

The possible values are:
#   * "." - standard container
#   * "B" - "Browse Directory"
#   * "M" - "Music"
#   * "P" - "Pictures"
#   * "V" - "Video"

но никак не помогает

попробуй

Пробовал и ранее — результата нет.

и убрать V в media_dir

И это пробовал, вообще оно означает что в этой дире только видосы, так оно и есть.

Не, сами файлы то телек видит и серфит по ним и по подпапкам, просто при выборе воспроизвести он орёт что контейнер не тот, а иногда и формат в контейнере не тот.

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 3)
Ответ на: комментарий от Morin

readymedia-transcode

Собралось под дебчиком. А транскодит он через внешне вызываемый баш скрипт в котором ффмпег. Т.е. написать свой скрипт и указать его в конфиге — не проблема. Правда перемотки нет, хотя в скрипт передаются -ss $STARTPOSITION и -t $DURATION, буду копать дальше, но уже не сегодня.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Morin

А, ну да — ещё патч воткнуть который тамбнейлы делает.

deep-purple ★★★★★
() автор топика

Но есть у меня телевизор, смарт (как же хочется написать это слово в кавычках), ага…

Вот и корень проблемы. Собери себе небольшой компьютер, да подключи к телевизору. Примонитируй на нем все что нужно и проигрывай через mpv. Это проще, чем искать пути взаимодействия с проприетарной железкой.

Есть у меня теперь HP Proliant микросервер gen8.

P.S. А почему бы не подключить к нему телевизор напрямую?

aquadon ★★★★★
()
Последнее исправление: aquadon (всего исправлений: 1)
Ответ на: комментарий от aquadon

А вот и еще один любитель кучи девайсов и проводов по дому пожаловал!

А почему бы не вставить себе в бошку чип Илона Маска и не смотреть кинцо прямо в мозгу?

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

А к телевизору у тебя проводов нет? И питание он тоже по воздуху получает?

Не вопрос, трахайся на здоровье с DLNA, перекодированием, проприетарными прошивками телевизора и пиши дальше php страницы.

aquadon ★★★★★
()
Ответ на: комментарий от aquadon

Ну а ты продолжай множить по дому никому кроме тебя не понятные коробки и ящики девайсов и сдабривать это килограммами лапши из проводов.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Вот такая и была. Попробуй собрать версию из гита, там что-то чинили, а версию новую так и не выпустили.

anonymous
()
Ответ на: комментарий от anonymous

Версии из гита и из репы одинаковы.

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

Чем отличается одни от другой кроме добавленной поддержки транскода? Вангую что кроме добавленого транскода — ничем. Потому что есть ещё один патч — генератор тамбнейлов, которого ни в дебовом репе ни в транскоде нет.

Т.е. по сути что я сделаю — проверю живость транскод версии, посмотрю что можно улучшить + втулю патч тамбнейлов.

Короче, походу у меня выйдет оживить и улучшить проект. Думаю, ждите как минимум в арчовом ауре максимальный апгрейд. Всмысле, я это в аур класть не собираюсь, лишь дам в итоге ссылку на репу со всеми правками и доработками.

deep-purple ★★★★★
() автор топика

minidlna нормально шпарит, по крайней мере на моей лыже, никаких хацкерских конфигов не настроено. Могу модель скинуть, если интересно.

garik_keghen ★★★★★
()
Ответ на: комментарий от anonymous

Ну ещё бы! Во втором бинаре добавлена поддержка транскода на лету за счёт внешнего экзек вызова баш скрипта в котором пиши что хочешь (в базовом случае там вызов ффмпега).

А кто ответит чем ещё они отличаются? Вот этим то я и займусь.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от anonymous

зачем? проще сделать суммарный дифф по всем файлам между репами.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Morin

Несмотря на идентичность версий по «minidlna -V», разница между сорцами, что лежат в репах дебиана (бастер) и тем, что в том репозитории — огромна. Куча мелких изменений, правок и даже улучшений.

Пробежался взглядом очень бюыстро. Разбираться по каждому куску что там именно и почему поменяно — нет ни желания ни времени.

Засим беру в оборот лучшую (https://bitbucket.org/stativ/readymedia-transcode.git) версию и вставляю патч тамбнейлера в неё. Эту версию я вчера и успешно собрал и запустил.

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от Morin

Изза множества мелких отличий в сорцах, накатить патч по простому не вышло, втыкал куски вручную.

Ну ладно, собрал теперь уже с тамбнейлами. Не падает. Тамбнейлы генерит (снифанул траф, нашел в хмл отдаваемые пути, открыл в браузере).

Однако, влц как было так и показывает пустышки без картинок.

А вот этот *censored* телек вообще сказал «сервер не доступен, проверьте настройки сервера». Я просто в *censored*. Сервер, конечно, доступен.

Почуть буду ковырять дальше.

Чтобы понять что там не так надо прочесть немало спеков. Спеки уже качнул (upnp).

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 1)

я плюнул, купил 2ую видеокарту, 5м hdmi провода, сделал multiseat и пользователя kodi, который запускает сессию kodi

sergej ★★★★★
()
Ответ на: комментарий от sergej

а, и гироскопический пульт, хотя можно и обычный, главное чтоб к компу прикручивался

sergej ★★★★★
()
Ответ на: комментарий от deep-purple

Несмотря на идентичность версий по «minidlna -V», разница между сорцами, что лежат в репах дебиана (бастер) и тем, что в том репозитории — огромна. Куча мелких изменений, правок и даже улучшений.

Да, ты внатуре? Хто бы мог подумать?! Пойду пацанам расскажу.

anonymous
()
Ответ на: комментарий от deep-purple

cat /etc/minidlna.conf | grep -v ^#

media_dir=/home/alexander

port=8200

friendly_name=Tortuga

album_art_name=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartmall.jpg
album_art_name=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
album_art_name=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
garik_keghen ★★★★★
()

я бы посоветовал купить андроид приставку, на этом бы твои проблем закончились, давно известно что «смарттв» - это синоним слова на букву Г

jo_b1ack ★★★★★
()
Ответ на: комментарий от deep-purple

Жирнючие ненужные куски этого самого. Расшарить каталоги — этого достаточно, что собсно минидлна и делает. Просто телек ахеревший.

Жирнюче - это сидеть, скачанные кинчики ещё в другие контейнеры перепаковывать. Жесть вообще, такой хернёй заниматься только в кошмаре приснится. Так что просто поставь вариант, который работает, и не гонись за лишней парой мегабайт.
У меня телек LG, на роутере диск и transmission. Я просто добавляю торрент с рутрекера с планшета в 1 клик, а потом смотрю на телеке. И все форматы воспроизводятся, и никаких браузеров не надо.
Единственное, что бесит: стоит transmission с патчем на последовательную закачку файла (а не рваными кусками с разных сторон файла). На кухне обычный моник с малиной и Коди (полноценным, а не кастрированной ёлкой + Emulation Station ещё комплектом), так там как закачку добавил, можно сразу кинчик включать, а не ждать. И смотреть, пока он докачивается. А смарт, сучок, проверяет походу файлы на целостность, и пока не докачан - не посмотреть.
В общем, если решишь что-то докупать к телеку - я советую Коди, а не Андроид. Потому что единственное, чего на нём нет - это всякие Окко и IVI, а они в смарт итак встроены. Я пробовал у них бесплатную подписку и оплачивал несколько месяцев сверху. Но потом это превратилось в бесконечное листание по жанру триллер/ужасы, или фантастика со словами: «это мы смотрели, это мы тоже смотрели, это мы тоже уже смотрели, итд...». В какой-то момент выручил раздел «Для тех, кто видел всё», но и его хватило ненадолго.
Ну либо не жлобись на несколько мегабайт, и если есть адаптированный dlna под твой телек - ставь его. Ибо вот что-что я уяснил за долгое время, главное в телеке - это удобство. Чтобы ты мог без шаманств каких-то, очень просто в любой ситуации получить нужный контент. Чтобы могла справиться спокойно и девушка/жена, и это никогда не вызывало ни капли трудностей.

Ах да, и самое первое, если ты вдруг этого не сделал - проверь, что установлена самая свежая прошивка и новее нет. Там обычно исправляют много ошибок.

fehhner ★★★★★
()
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от fehhner

парой мегабайт

Уточним — парой терабайт. И тут твои доводы уже совсем не такие сладкие. А транскодинг, вообще, спасает, конечно, от этого, но с желанием получить хорошее качество жрёт ресурсы проца как не в себя.

У меня телек LG

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

А смарт, сучок, проверяет походу файлы на целостность, и пока не докачан - не посмотреть

У меня такой проблемы нет — файл шарится только в случае полной целостности.

если есть адаптированный dlna под твой телек - ставь его

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

Чтобы могла справиться спокойно и девушка/жена, и это никогда не вызывало ни капли трудностей

Именно поэтому я так заморачиваюсь. И, заметь, не потратил ни копейки.

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

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от jo_b1ack

давно известно что «смарттв» - это синоним слова на букву Г

У Sony - да. Но у сони вообще много чего этим синонимом является. А у самсунга просто работает.

Я бы не боролся с телевизором, а написал фоновую конвертилку во что-то телевизором заведомо поддерживаемое.

anonymous
()
Ответ на: комментарий от deep-purple

Лучше конфиг минидлна скинь.

porter / # cat /etc/minidlna.conf
# port for HTTP (descriptions, SOAP, media transfer) traffic
port=8200

# network interfaces to serve, comma delimited
#network_interface=eth0

# specify the user account name or uid to run as
#user=jmaggard

# set this to the directory you want scanned.
# * if you want multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to specific content types, you
#   can prepend the types, followed by a comma, to the directory:
#   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
#   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
#   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
#   + "PV" for pictures and video (eg. media_dir=PV,/home/jmaggard/digital_camera)
media_dir=/mnt/box

# set this to merge all media_dir base contents into the root container
# note: the default is no
#merge_media_dirs=no

# set this if you want to customize the name that shows up on your clients
friendly_name=Porter

# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
#db_dir=/var/lib/minidlna

# set this if you would like to specify the directory where you want MiniDLNA to store its log file
#log_dir=/var/log/minidlna

# set this to change the verbosity of the information that is logged
# each section can use a different level: off, fatal, error, warn, info, or debug
#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn

# this should be a list of file names to check for when searching for album art
# note: names should be delimited with a forward slash ("/")
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes

# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
enable_tivo=no

# set this to beacon to use legacy broadcast discovery method
# defauts to bonjour if avahi is available
tivo_discovery=bonjour

# set this to strictly adhere to DLNA standards.
# * This will allow server-side downscaling of very large JPEG images,
#   which may hurt JPEG serving performance on (at least) Sony DLNA products.
strict_dlna=no

# default presentation url is http address on port 80
#presentation_url=http://www.mylan/index.php

# notify interval in seconds. default is 895 seconds.
notify_interval=900

# serial and model number the daemon will report to clients
# in its XML description
serial=12345678
model_number=1

# specify the path to the MiniSSDPd socket
#minissdpdsocket=/var/run/minissdpd.sock

# use different container as root of the tree
# possible values:
#   + "." - use standard container (this is the default)
#   + "B" - "Browse Directory"
#   + "M" - "Music"
#   + "V" - "Video"
#   + "P" - "Pictures"
#   + Or, you can specify the ObjectID of your desired root container (eg. 1$F for Music/Playlists)
# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
#root_container=.

# always force SortCriteria to this value, regardless of the SortCriteria passed by the client
#force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title

# maximum number of simultaneous connections
# note: many clients open several simultaneous connections while streaming
#max_connections=50

# set this to yes to allow symlinks that point outside user-defined media_dirs.
#wide_links=no
Enthusiast ★★
()
Ответ на: комментарий от Enthusiast

Настройки торрентокачальщика «Трансмишшна», чтобы закачки шли одна за другой по одному файлу, а не скопом все и чтобы файлы закачивались последовательно, а не кусками отовсюду.

porter / # cat /var/lib/transmission/config/settings.json
{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 16,
    "dht-enabled": true,
    "download-dir": "/mnt/box",
    "download-queue-enabled": true,
    "download-queue-size": 1,
    "encryption": 0,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/mnt/box",
    "incomplete-dir-enabled": false,
    "lpd-enabled": true,
    "message-level": 0,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "lowcost",
    "pex-enabled": true,
    "pidfile": "/var/run/transmission/transmission.pid",
    "port-forwarding-enabled": true,
    "preallocation": 2,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-password": "{29df2dbad7ee519d1514c8094419c5c1b567c0fdRTL.qBYC",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "root",
    "rpc-whitelist": "127.0.0.1,192.168.1.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true
}
Enthusiast ★★
()
Ответ на: комментарий от Morin

Доработал скрипт для того минидлна, который с транскодингом:

#!/bin/bash


# expect (depend):
#
# bash
# ffprobe
# jq (lightweight and flexible command-line JSON processor)
# ffmpeg


SOURCE=$1
STARTPOSITION=$2
DURATION=$3


PROBE_RESULT=$( \
    ffprobe \
        -v quiet \
        -show_streams \
        -print_format json \
        "$SOURCE" | jq '.streams[].codec_type' \
)


OPTIONS_VIDEO=""
OPTIONS_AUDIO=""
OPTIONS_SUBS=""

V=$(echo $PROBE_RESULT | grep "video")
A=$(echo $PROBE_RESULT | grep "audio")
S=$(echo $PROBE_RESULT | grep "subtitle")

if [ ! -z "${V}" ]; then
    OPTIONS_VIDEO="-map 0:v -vcodec mpeg4 -vtag xvid -b:v 20000000 -qscale:v 1"
fi
if [ ! -z "${A}" ]; then
    OPTIONS_AUDIO="-map 0:a -acodec libfaac -ac 2 -async 10"
fi
# not working with avi,
# working with mpegts format, but not muxing to client
#if [ ! -z "${S}" ]; then
#    OPTIONS_SUBS="-map 0:s -scodec dvdsub"
#fi


ffmpeg \
    -ss $STARTPOSITION \
    -t $DURATION \
    -i "$SOURCE" \
    -loglevel quiet \
    -threads 1 \
    -map_metadata -1 \
    -map_chapters -1 \
    $OPTIONS_VIDEO \
    $OPTIONS_AUDIO \
    $OPTIONS_SUBS \
    -f avi \
    pipe:1

1) Теперь реально транскодит ВСЕ стримы (видео и аудио, не важно каких сколько), а не лишь первых два.

2) Отдаёт более лучшую картинку (за счёт смены кодека).

3) Быстрее синкует звук при переключении на другую аудио-дорожку.

4) Вроде как не стал жрать больше CPU.

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 2)

Рекомендую анал!

Владимир.

anonymous
()
Ответ на: комментарий от Morin

Если скажет что не может сыграть:

Поменять "-f avi" на "-f mpegts".

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Morin

Ковыряю сорцы и плАчу:

/*
    это контекст без транскодинга
*/

// для самсунгов
if( cflags & FLAG_SAMSUNG )
{
    // если собрались отдавать файл с маймом "x-matroska"
    // надо подменить майм на "x-mkv"
    // иначе не заработает
    if( strcmp(last_file.mime+6, "x-matroska") == 0 )
        strcpy(last_file.mime+8, "mkv");

    // самсунги типа A750 нативно поддерживают Xvid/DivX AVI
    // однако, надо подменить на "mpeg"
    // иначе не заработает
    else if( ctype == ESamsungSeriesA && strcmp(last_file.mime+6, "x-msvideo") == 0 )
        strcpy(last_file.mime+6, "mpeg");

    // самсунги могут играть квиктайм
    // но надо подменить майм на "mp4"
    // иначе не заработает
    else if( strcmp(last_file.mime+6, "quicktime") == 0 )
        strcpy(last_file.mime+6, "mp4");
}

// для соней
else if( ctype == ESonyBDP )
{
    // если это мкв или мпег файл
    // надо подменить на "divx"
    // иначе не заработает
    if( strcmp(last_file.mime+6, "x-matroska") == 0 ||
        strcmp(last_file.mime+6, "mpeg") == 0 )
        strcpy(last_file.mime+6, "divx");
}
И вот сижу и думаю — это просто потому что такие грязные хаки, которые сработали, или это правда так себя ведут телевизоры?

Склоняюсь к первому, т.к. судя по общей картине качества кода минидлна — там надо ящик водки выпить, чтобы понять что имели ввиду авторы.

А телевизоры, ну ясное дело, что-то поддерживают, что-то нет, но яркий пример замены маймтайпа с мкв на дивикс — это песец!!!

deep-purple ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.