Содержание

Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal

Смотрим видеофильмы на терминале

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

Самым узким местом при просмотре фильмов на Х-терминале является пропускная способность локальной сети. Тут распределенная структура клиент-сервер системы X-Windows сыграла с нами злую шутку, и все ее преимущества работают против нас. При передаче видеоизображения через локальную сеть полностью отсутствует какая-либо акселерация, и фактически видеофильм передается набором статических изображений (довольно больших) с определенной скоростью (кадров в секунду) через локальную сеть. Несложно выполнить простые вычисления необходимой пропускной способности для просмотра видеофильма размером 480х192 при скорости передачи хотя бы 20 кадров в секунду. Размер одного кадра при глубине цвета 16 бит (HiColor) равен 480 х 192 х 2 = 184320 байт. Следовательно, пропускная способность сети должна быть не ниже чем 184320 х 20 = 3686400 байт/с. Для сравнения: пропускная способность сетевой карты в 10 Мбит/с равна, 10000000 / 8 = 1250000 байт/с, то есть в три раза меньше, и не следует забывать также о параллельной передачи звука, который также будет претендовать на свой сетевой канал.

Для просмотра фильма вам понадобится сетевая карта как минимум с пропускной способностью в 100 Мбит/с (12,5 Мбайт/с). Для сетевых адаптеров со скоростью в 10 Мбит/с просмотр фильма превратится в настоящий кошмар. Чтобы в этом убедиться, достаточно один раз попробовать. В качестве тестового примера я взял Х-терминал с 10 Мбит/с сетевой картой и попытался запустить просмотр фильма (файл Shmatrixp1.AVI) командой (вывод команды приведен со значительными сокращениями):

$ mplayer Shmatrixp1.AVI
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/share/locale

MPlayer 0.90rc5-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Intel  (Family: 8, Stepping: 9)
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
...
Playing Shmatrixp1.AVI
AVI file format detected.
VIDEO:  [DX50]  480x192  24bpp  23,98 fps  667,6 kbps (81,5 kbyte/s)
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2&3 finished, tables done
AUDIO: 32000 Hz, 2 ch, 16 bit (0x10), ratio: 10000->128000 (80,0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
vo: X11 running at 1024x768 with depth 16 and 16 bpp ("192.168.1.14:0.0" => remote display)
...
Starting playback...
This file was encoded with DivX503 Build696
...
A:   6,0 V:   2,1 A-V:  3,910 ct:  0,213   52/ 52  17% 527%  3,6% 50 0 0%

           ************************************************
           **** Your system is too SLOW to play this!  ****
           ************************************************

...
Exiting... (Quit)

После нескольких секунд просмотра этого “слайд-шоу” на консоле появилось сообщение, говорящее о том, что данный компьютер для просмотра видеофильмов слишком медленный. Там же было приведено несколько вариантов для улучшения ситуации, например, использовать опцию -framedrop для пропуска кадров, если скорость вывода недостаточна. Также можно принудительно указать программе mplayer использовать вывод звука серез сервер ESounD (опция -ao esd). Новая команда просмотра фильма выглядит вот так:

$ mplayer -ao esd -framedrop Shmatrixp1.AVI

После применения этих параметров изображение стало двигаться немного быстрее, но все равно не достаточно. Да и звук жутко искажался, так как скорее всего не все фрагменты звукового потока доходили до Х-терминала. Приговор окончательный, локальной сети в 10 Мбит/с для передачи видео большого разрешения недостаточно.

Для сети в 100 Мбит/с ситуация обстоит более или менее нормально. Отказываться от использования параметра -framedrop не стоит, так как следует помнить о многопользовательской природе работы на Х-терминале, а следовательно пики нагрузки на сервер могут привести к заметным “заиканиям” воспроизведения видео. Когда вы смотрите видеоролик на Х-терминале, при переходе в полноэкранный режим не происходит масштабирования изображения. Это связано с тем, что вывод на удаленный дисплей не позволяет использовать аппаратные возможности видеокарты для выполнения масштабирования картинки. Поэтому фильмы остаются в оригинальных (исходных) размерах. Конечно, всегда можно использовать и программное масштабирование (опция mplayer -zoom), но при этом скорость отображения падает, а нагрузка на центральный процессор возрастает:

$ mplayer -ao esd -framedrop -zoom Shmatrixp1.AVI

Из этого раздела вы наверное уже догадались, что использование Х-терминалов для просмотра фильмов, не самая лучшая идея. Передача по сети огромного объема информации не только приведет к ее чрезмерной загрузке, но и значительно увеличит нагрузку на центральный процессор сервера Х-терминалов, а как результат общее падение производительности всех пользователей без исключения. В общем, смотреть фильмы на Х-терминале можно, но категорически не рекомендуется.

Пока интересно, читаем дальше!

Авторское право © Сеник Николай, 2004-2006