Клиентская программа управления потоковыми данными

( Client software for streaming media editing
Preprint, Inst. Appl. Math., the Russian Academy of Science)

Бухштаб Ю.А., Воробьев А.А., Евтеева Н.Н.
(Y.A.Bukhshtab, A.A.Vorobjov, N.N.Evteeva)

ИПМ им. М.В.Келдыша РАН

Москва, 2008

Аннотация

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

Abstract

The paper describes the client version of the software for streaming video and audio editing. This version of the editor can be installed on computers of Internet users providing the access to educational resources in the network, experimental complexes for scientific research etc.

          1. Введение.

 

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

На протяжении последних лет авторами настоящей работы была разработана  новая информационная  технология  управления видео и аудио потоками, транслируемыми различными территориально разнесенными серверами,  которая позволяет  интегрировать такие потоки  в рамках единой инфраструктуры (1),(2),(3),(4). Эта технология позволяет  дистанционно модифицировать потоковые данные (например, вырезать части  видеофайла), объединять различные потоки и их фрагменты, вставлять в поток как новые  видео или аудио данные (в том числе, транслируемые из разных источников), так и графическую или текстовую  информацию. При этом управление потоками является «виртуальным», то есть не требуется  какая-либо модификация или реальная разгрузка видео и аудио файлов, хранящихся на распределенных серверах. Созданные в результате виртуальные потоки данных с точки зрения пользователя  ничем не отличаются от исходных потоков видео и аудио данных. Эти потоки представлены в виде структур перекрестных ссылок, определяющих связи и временные соотношения между исходными и виртуальными потоками и их фрагментами. В принципе, кроме временных соотношений, структуры ссылок могут содержать и другие данные, в частности, информацию о координатах места записи видео или аудио информации, которая может быть автоматически  получена с помощью устройства  глобального позиционирования. Такой подход позволит, например, более широко  использовать видеоданные в геоинформационных системах. Структуры ссылок используются для динамической генерации управляющих команд, обеспечивая тем самым соответствующее дистанционное управление видео и аудио потоками. Управляющие команды представляются на языке SMIL отображая действия пользователя, который осуществлял  удаленное редактирование видео и аудио потоков, задавая  информацию о начальных и конечных тайм-кодах выбранных  фрагментов и их последовательность. Тот факт, что в SMIL-файлах задается  последовательность фрагментов потоков, позволяет не только осуществлять полнофункциональное виртуальное редактирование, но и, например, передавать аудио или видео потоки в зашифрованном виде. В этом случае только пользователи, которые имеют  соответствующий SMIL-файл, являющийся ключом, могут использовать зашифрованный поток.  Программная модель, построенная на базе такого подхода (для аудио потоков), была реализована в рамках проводимых работ, и анализ результатов испытаний показал, что такой метод шифрования является эффективным.

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

2. Клиентская версия редактора видео и аудио потоков.

Клиентская версия редактора предназначена для создания клипов из различных источников потоковой медиаинформации и их редактирования. Программа устанавливается на  компьютере пользователя. Она позволяет создать базу данных на локальном компьютере, в которой хранятся сведения об исходных видеофильмах, аудиозаписях и собственных проектах пользователя (будем называть все эти объекты клипами). При этом сами проекты также сохраняются на компьютере пользователя. Таким образом, для работы клиентского редактора не требуется специального сервера с программным обеспечением, а исходная видео и аудио информация может размещаться на любых удаленных серверах, способных транслировать потоковые данные по протоколу RTSP в формате RealMedia. Кроме того, можно использовать файлы в формате RealMedia, размещенные непосредственно на компьютере пользователя.

Клиентский редактор позволяет создавать видеоклипы с помощью вырезания  фрагментов из исходных клипов и их  соединения друг с другом. Такой создаваемый пользователем клип называется проектом. В качестве исходных могут использоваться видеоклипы, транслируемые в Интернете с серверов по протоколу RTSP в формате RealMedia, видеоклипы, расположенные на компьютере пользователя, и уже созданные пользователем проекты.

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

Для просмотра клипов используется элемент Active-X – окно просмотра RealPlayer. Проект представляется SMIL файлом, поддерживаемым RealPlayer. Такой SMIL файл для RealPlayer является обычным видеоклипом с единым тайм-кодом, хотя он и состоит из различных фрагментов других клипов. Поэтому созданный проект может быть использован как обычный клип.

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

 

3.Работа с редактором.

 

На рисунке ниже представлен фрагмент  окна клиентской версии редактора.

                          

 

В верхней части окна расположено поле ввода URL адреса исходного клипа. После ввода адреса кнопкой [Просмотр] клип вызывается на просмотр. В этом же окне можно ввести адрес клипа, хранящегося на компьютере пользователя или выбрать его, нажав кнопку [Выбрать].

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

Под вкладками расположены кнопки для работы с элементами наборов. Имеется возможность добавлять новый клип или создавать новый проект (кнопка [Новый]). При этом появляется всплывающее окно, в котором нужно ввести название клипа или проекта и его описание. Так же можно удалять элемент набора (кнопка [Удалить]), вызывать на просмотр (кнопка [Просмотр]) и редактировать названия и описания клипов и проектов. В клиентской версии редактора, в отличии от серверной версии, широко используется технология Drag-and-Drop. Так, например, для вызова клипа на просмотр достаточно перетянуть мышью выбранный клип на окно Real Player.

В правой части окна содержится встроенное окно RealPlayer, в котором осуществляется просмотр клипов, линейка тайм-кода и кнопки для управления просмотром и работы с фрагментами.

Для управления просмотром используются кнопки [Играть], [Пауза] и [Стоп]. Кнопки [Начало] и [Конец] предназначены для выделения фрагментов. Выделенный фрагмент отмечается цветом на линейке тайм-кода. Для более точного позиционирования границ фрагмента можно использовать пошаговую прокрутку клипа. С помощью кнопок [>] и [<] можно прокручивать клип вперед или назад с шагом в 0,2 сек. Выделенный фрагмент может быть запомнен в список фрагментов кнопкой [Сохранить фрагмент] или перетаскиванием его мышью с линейки тайм-кода на вкладку фрагментов. Можно также сразу начать новый проект и вставить в него выделенный фрагмент нажатием кнопки [Сохранить в проект] или сдвинув с помощью мыши фрагмент на вкладку проектов. Если фрагмент выделен в проекте, то он может быть вырезан (удален) из проекта с помощью кнопки [Вырезать].

При просмотре проекта в него можно вставлять заранее сохраненные фрагменты. Для этого надо выделить нужный фрагмент на вкладке фрагментов и с помощью кнопок [В начало], [В конец], [В текущую точку] вставить его. Фрагмент будет вставлен соответственно в начало проекта, в конец или в точку, где просмотр проекта был приостановлен.

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

Для хранения информации о сохраненных пользователем исходных клипах и созданных проектах реализована база данных, использующая  язык XML.

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

Вот пример, в котором приведены описания двух записей, одна – исходного клипа, другая – проекта.

 

<?xml version="1.0"  encoding="windows-1251" standalone="yes" ?>

<bd moddata=”20080702123456341”>

<clip type="film" idtime="200805052007690">

<title text="Планеты"/>

<url src="rtsp://rao.keldysh.ru/snapserlmedia/clips/planet_256.rm"/>

<descr>Фильм с участием академика  Келдыша</descr>

</clip>

 

 

<clip type="project" idtime="20080425213015254">

<title text="project 1"/>

<url src="E:\Andrey\Clisnapse\smil\20080425213015254.smil"/>

<descr>

Проект пользователя

</descr>

<seq>

<frag timebeg="10682" timeend="14000" type="video"

src="file:///E:\Snapsenew\snapsemedia\clips\cap-china-150.rm"/>

<frag timebeg="10000" timeend="15152" type="video"

src="file:///E:\Snapsenew\snapsemedia\clips\cap-redf_2-150.rm"/>

<frag timebeg="1681" timeend="25046" type="video"

src="rtsp://rao.keldysh.ru/snapserlmedia/userprojects/drugoi/Loreley.rmvb"/>

<frag timebeg="10000" timeend="13887" type="video"

src="file:///E:\Snapsenew\snapsemedia\clips\cap-gagarin-150.rm"/>

<frag timebeg="5000" timeend="15000" type="video"

src="file:///E:\Snapsenew\snapsemedia\clips\Khrushchevs_visit_to_US-150.rm"/>

</seq>

</clip>

 

</bd>

 

<?xml version="1.0"  encoding="windows-1251" standalone="yes" ?> -  заголовок XML файла, в котором указывается версия языка XML, используемая в файле кодировка символов; параметр  standalone="yes" указывает, что не требуется никаких дополнительных файлов описания документа.

 

 <bd> - обозначает заголовок документа. Параметр moddata указывает на дату и время последней модификации БД. Этому тегу соответствует закрывающий тег </bd>

Между тегами <bd> и </bd>  расположены описания записей БД.

 

Запись описывается тегом <clip>. У него есть параметр type, принимающий значение “film“ для исходного клипа, или “project“ – для проекта. Значением параметра idtyme является некоторая уникальная строка, генерируемая программой - первичный индекс в БД. Завершается описание записи тегом  </clip>. Между этими тегами расположены теги,  описывающие  запись.

Тег <title> с параметром text задает название клипа или проекта. Между тегами <descr>  и </descr> расположены строки описания видеодокумента.

Тег <url> с параметром src задает адрес клипа. Для исходных клипов это может быть как URL адрес в Интернете, так и адрес в локальной файловой системе. Для проектов это адрес и имя SMIL файла в локальной файловой системе.

Приведенные выше теги являются общими  для исходных клипов и проектов. У проектов есть еще дополнительные теги для описания последовательности фрагментов.

Последовательность фрагментов заключается между  тегами <seq> и </seq>. Каждый фрагмент описывается тегом <frag>. Он имеет следующие параметры: type – тип фрагмента (видео, аудио, графический); src  - URL адрес клипа в Интернете, или имя файла на локальном компьютере, из которого взят фрагмент; timebeg, timeend – тайм-коды начала и конца фрагмента от начала исходного клипа в миллисекундах.


          Литература


1.     Ю.А. Бухштаб,  А.А. Воробьев, Н.Н. Евтеева.  Организация программных средств, обеспечивающих интерактивное редактирование потокового видео. – Препринт ИПМ им. М.В.Келдыша РАН, №78, 2004. – 13 c.

 

2.     Ю.А. Бухштаб, А.А. Воробьев, Н.Н. Евтеева. Реализация редактора видео и аудио потоков, транслируемых с удаленных серверов. –Препринт ИПМ им. М.В.Келдыша РАН, №131, 2005. – 10 c.

 

3.     Ю.А. Бухштаб, А.А. Воробьев, Н.Н. Евтеева. Новые возможности работы с потоковой информацией. – Препринт ИПМ им. М.В.Келдыша РАН, №88, 2006. – 12 c.

 

     4.  Ю.А. Бухштаб, А.А. Воробьев, Н.Н. Евтеева. Программный комплекс для обработки потоковых данных, транслируемых с распределенных серверов. Труды Всероссийской научной конференции «Научный сервис в сети Интернет», 2007.   С. 349-352.