Отправляет email-рассылки с помощью сервиса Sendsay

ОЧЕНЬ странного ХОЧУ!!!

Добрый день,

Вот интересует такой вопрос(не будем вдаваться в цифрЫ, дабЫ не
погрязнуть в пучине их соотношений):
- есть два компа соединеннЫх сеткой(хоть кроссом, хоть через
свитч), кроме них там больще никого нету, т.е. никто на
пропускную способность не посягает;
- компЫ различаются по производительности и железу
1-Ый имеет CD-Rom, и звуковую подсистему;
2-ой не имеет ни сидюка, ни звуковухи, но к нему подсодинен
неплохой монитор/телевизор;
А хочется такого, чтобЫ фильм считЫвался с диска на 1-ом компе,
разделялся на аудио-видео части, и аудио декодировалось и
воспроизводилось на 1-ом компе, а видео декодировалось и
воспроизводилось на 2-ом! При этом требуется именно различие
мест декодирования, т.к. ни 1-Ый ни 2-ой не осилит полное
декодирование без потери кадров и дергания звука.Способ
управления подобной связкой не особо волнует - пусть хоть на
полном автомате запускаеться после вставки диска с фильмом.
Есть ли в природе готовое решение на основе свободной
реализации?
Как при таком изврате обеспечить синхронизацию звука и
картинки?
Приветствуються ссЫлки на толковЫй материал, язЫк не важен.
Если есть заинтересовавшиеся могу уточнить детали.

Ответить   Esmont Alexander Fri, 6 May 2005 16:11:56 +0300 (#363031)

 

Ответы:

В сообщении от 1115385116 секунд после начала Эпохи Unix Вы написали:

А может объединить их в кластер и использовать как один? :) Тогда
получим расширяемую систему, например можно будет добавить еще третий
компьютер, у которого будет IrDA, но не будет ни монитора ни звуковой
карты. А со временем можно будет добавить четвертый, у которого будет
DVD-привод. А потом еще пятый с отдельным монитором, стоящим в отдельном
помещении, для тех кто любит комментировать вслух происходящее на экране
:)

Ответить   Konstantin Korikov Fri, 6 May 2005 20:36:30 +0300 (#363224)

 

В сообщении от Fri, 06.May.2005, 20:36:30 +0300, Konstantin Korikov писал:

Если сооружать кластер, идеально подходит openMosix. Есть незначительная потеря
суммарной мощности (особенно если сетевухи встроенные), зато все доступные накопители
обеденяются в общую виртуальную файловую систему и можно настроить подключение
входящих в кластер компьютеров "налету".
За подробностями сюда: http://www.openmosix.sf.net

ZVital

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18504; Возраст листа: 652; Участников: 1348
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/363437

Ответить   Sat, 7 May 2005 03:12:59 +0400 (#363437)

 

Добрый день ZVital,

В день 7 мая 2005 г., 2:11:59, вы писали:

накопители

А как ляжет на кластер задача декодирования мультиплексированного
аудио-видео потока (фильма)? IMHO, задачи декодирования звука и
картинки, конечно распараллеливаемЫе, но очень жестко
синхронизированнЫе - это раз, при кластерной обработке задача
вЫполняется на другой машине, но ведь результатЫ возвращаются на ту
машину с которой задача бЫла запущена(тут нагрузка на канал настолько
возрастет!!!) - это два.

ДаннЫй вариант попробую ближе к концу недели, на чем то вроде
ClusterKnoppix, дабЫ не пугать коллег предложениями "проинсталить
Линукс на чуть-чуть". :)

Тут видится решение по применению двух проигрЫвателей, один запущен
только на декодирование звука, без декодирования картинки на 1-ой
машине, а второй запущен на 2-ой машине с декодированием только
картинки и игнорированием звука. _НО_ как их засинхронизировать???

Ответить   Esmont Alexander Tue, 10 May 2005 13:52:47 +0300 (#365029)

 

Вот я тут читал-читал эту тему, и всё меня вопрос о синхронизациимучал:). А потом
я подумал -- а зачем, собственно? Ведь звук идёт с определённой скоростью и видео
тоже. Значит если запустить два плеера _одновременно_, то звук и видео будут
синхронизированы даже на разных машинах(если не будет прерываний). Значит вопрос
"Как запустить на разных машинах одновременнно?". Предлагаю решение: скрипт start-waiting
запускается на одной машине, открывает порт и слушает его, как только он читает
из порта слово start(к примеру), он запускает плеер звука. Скрипт на первой машине
запускается, открывает сокет, пишет туда слово start и ждёт некоторое время deltime(
в милесекундах задаётся из коммандной строки) и запускает плеер видео.
Теперь нужно только подобрать задержку. Предлагаю метод деления пополам.

Остаётся вопрос - как сделать паузу( если отойти нужно )? Но нужно попробовать
реализовать сие решение, а потом и с паузой можно нечто подобное сделать.

С уважением,
Андрей.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18555; Возраст листа: 655; Участников: 1350
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/365050

Ответить   Андрей Клаус Tue, 10 May 2005 15:25:57 +0400 (#365050)

 

Добрый день Андрей,

В день 10 мая 2005 г., 14:24:57, вы писали:

А потом

и видео

вопрос

start-waiting

читает

машине

deltime(

Достаточно просто, но все упираеться в два НО:
- но ведь считЫвание происходит с дискового устройства и тут возможнЫ
тормоза из-за ошибок считЫвания, а они могут оказаться и на звуковой
части файла и на видео-фрейме, после чего тот или иной декодер сбросит
некоторорую часть информации, засинхронизируеться от следующего фрейма
и начнется не соответствие кадра и звука. Переодичность подобного
процесса при нормальном декодировании(на одной машине) приведет лишь к
отбросу частично-поврежденного фрагмента, а вот на распределенном
декодере к разбежке звука и картинки.
- мне встречались фильмЫ со звуковой дорожкой, которая короче
видеочасти на 2 секундЫ, причем при деодировании нормальнЫм
проигрЫвателем, он понимал, что до воспроизведения звука надо
подождать. Таким образом в начале шло 2 секундЫ без звука, а потом все
нормально. А при не очень хороших проигрЫвателях звук начинал
воспроизводиться одновременно с картинкой и соответственно опережал ее
на 2 секундЫ.

Т.ч. синхронизация с некоторЫм периодом все-же, imho, нужна. Так, на
всякий случай.

Тут уж можно написать прогу для контроля клавиатурЫ(там где она
подключена) и посЫлать кодЫ нажатЫх клавиш на вторую машину или если
используеться только lirc то еще проще.

Ответить   Esmont Alexander Tue, 10 May 2005 14:54:59 +0300 (#365062)

 

Доброе время суток!
Tue, 10 May 2005 14:54:59 +0300 Esmont Alexander писал(а):

А разве в mplayer'e нет кеширования?

Ответить   Терновых Илья Tue, 10 May 2005 18:48:10 +0400 (#365119)

 

Добрый день Терновых,

В день 10 мая 2005 г., 17:47:10, вы писали:

Есть наверняка. Но вопрос не в кешировании, а в том, что в
поврежденной области которую не удасться удачно вЫчитать может
оказаться (грудая аналогия) звука на 3 сек, а видео на 0.5
сек.Декодировщик вЫкинет (пропустит) этот кусок и соответсвенно
потеряется синхронность потоков. Т.е. синхронизация иногда всеже
необходима.

Ответить   Esmont Alexander Wed, 11 May 2005 15:42:13 +0300 (#365656)

 

В сообщении от Tue, 10.May.2005, 13:52:47 +0300, Esmont Alexander писал:

Если удастся найти программу перекодировщик полноценно способную работать с
тредами (таковая наверняка существует), то необходимость синхронизации
отпадает самасобой т.к. синхронизация потоков будет заложена в саму
программу (без этого и на одной системе-то никак).
А то что нагрузка на сеть будет недетская это само собой, задачка то
тоже не из простейших :).

С уважением

ZVital

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18557; Возраст листа: 655; Участников: 1350
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/365076

Ответить   Tue, 10 May 2005 15:50:02 +0400 (#365076)

 

Добрый день ZVital,

В день 10 мая 2005 г., 14:49:02, вы писали:

с

Нагрузка будет большой только при неправильном перенаправлении
декодированнЫх потоков, а вот при вЫдаче на месте пропускной
способности будет хватать вполне.
Задача довольно проста, но нетривиальна! :)
Будем пробовать и искать....

Ответить   Esmont Alexander Wed, 11 May 2005 16:07:21 +0300 (#365677)

 

Добрый день Konstantin,

В день 6 мая 2005 г., 20:35:30, вы писали:

;-)))

Вариант только на половину шутка, т.к. при наличии некоторого парка
подобной техники - не представляющей ценности с практической-оффисной
точки зрения, такая реализация развивает некоторЫй набор знаний и
приятна для собственного ЭГО. :)

МЫсль понравилась. Намек на кластер понял, но интересно как
проигрЫватели разделяют потоки для декодирования, и как к таким
потокам отнесется планировщик openMosix-а (для примера)?

Ответить   Esmont Alexander Tue, 10 May 2005 13:57:31 +0300 (#365031)

 

В сообщении от 1115722651 секунд после начала Эпохи Unix Вы написали:

Это нужно проверить экспериментально. К сожалению, я не имею
такой возможности. На сколько я знаю, mplayer создает два потока, один
для видео, другой для звука. Результат декодирования должен передаваться
драйверу вывода (т.е. участку кода mplayer, который отвечает за вывод на
конкретное устройство, драйвер, сервер, и т.п.). Если поток,
занимающийся декодированием видео, и драйвер видеовывода будут
выполнятся на разных машинах, то разумно предположить что пропускной
способности ЛВС не хватит чтобы передать такой большой поток данных с
нужной скоростью. А если декодирование и вывод видео будут происходить
на одной машине, а декодирование и вывод звука на разных, то тут
особой проблемы быть не должно, так как для передачи моно, 22000 кГц, 8
бит потребуется пропускная способность всего не меньше 22 кбит/с. Но
этот вариант отпадает, так как звук и видео нужно декодировать и
выводить на разных машинах. Для этого нужно чтобы код драйвера и
декодера были в одном потоке. Скорее всего mplayer отвечает данному
требованию, так как я не вижу причины держать их в разных потоках. Так
что я считаю что шанс есть, нужно пробовать.

Ответить   Konstantin Korikov Tue, 10 May 2005 15:34:12 +0300 (#365094)

 

Добрый день Konstantin,

В день 10 мая 2005 г., 15:33:12, вы писали:

А я вот точно проверю, как только вЫкачаю ClusterKnoppix. Думаю за
неделю справлюсь. :)

Естественно, т.к. сжатЫй поток идет примерно в 6 раз бЫстрее
воспроизведения (10Мбит/с, фильм 600МБ, длительность 1 час), а вот
разжатЫй обратно - это ОГО-ГО!

Посмею не согласиться(в основном ради поддержания дискурсии на
интересную тему) по двум причинам:
- mplayer не входит в поставку ClusterKnoppix, а там используется
xine, хотя и не факт что тут руководствовались именно соображениями
распараллеливания - косвеннЫй показатель.
- прикинем примерную последовательность действий планировщика
openMosix призапуске на воспроизведение видеофайла на первой машине:
- запускаеться mplayer: считЫвает и разбирает заголовок
файла, определяет устройства вЫвода звука и видео(на 1-ой
машине), вЫбирает и загружает в отдельнЫе потоки декодерЫ
звука и картинки;
- планировщик видит два потока нагружающих процессор и видит
процессор свободнЫй от вЫполняемЫх задач (2-ая машина),
перекидЫвает поток декодирования (допустим) видео на второй
узел кластера и вслед ему перенаправляет поток даннЫх от
демуксера;
- декодер, работающий на 2-ой машине, разбирает и декодирует
свои даннЫе и передает их драйверу для вЫвода;
- драйвер имеет ссЫлку на устройство вЫвода, которую он
получил при запуске воспроизведения на 1-ой машине, и
соответственно перенаправляет свой вЫвод по этой ссЫлке,
т.е. на 1-ую машину - тормоз передачи конкретнЫй!!!
Как определить в контексте какого узла вЫполняется поток и как
заставить его вЫводить на устройство вЫвода на той машине где он
работает? Что-то мне подсказЫвает что сам он не догадаеться так
сделать. :)

Ответить   Esmont Alexander Wed, 11 May 2005 16:03:57 +0300 (#365673)