Реализация редактора видео и аудио потоков, транслируемых с удаленных серверов

( The implementation of the editor for video and audio streaming broadcasted from remote servers
Preprint, Inst. Appl. Math., the Russian Academy of Science)

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

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

Москва, 2005

Аннотация

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

Abstract

The paper describes the realization of software tools purposed for full functions editing of the streaming video and audio located at different remote servers in the network without any modification of media files stored in servers databases.

 

             1. Введение.        

 

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

 

                 2.  Принципы организации потоковой   трансляции.

 

 

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

   Для обеспечения трансляции медиа файлов  на базе протокола RTSP необходимо использовать специальное серверное программное обеспечение – видеосервер. Существует ряд реализаций такого программного обеспечения, и наиболее развитым из них являются видеосерверы семейства Helix, разработанного компанией RealNetworks, которая и была инициатором  создания этого протокола. Настоящая работа базируется на использование именно такого программного обеспечения. 

 Серверы Helix поддерживают трансляцию видео и аудио файлов, представленных  в собственных форматах RealNetworks  -  RealVideo и RealAudio (rm-файлы), а также таких форматах как MP3, MPEG-4 и ряда других. Кроме того, эти серверы обеспечивают передачу клиенту других типов данных, таких как графические изображения, анимацию, текст и т.д.

Имеется  два основных  вида трансляции сервером Helix медиа файлов – когда клиенту передается заранее подготовленный и хранящийся на сервере файл или  видео в реальном времени, которое снимается непосредственно в тот же момент, что и осуществляется трансляция.  В первом случае, когда  транслируется файл, размещенный на сервере, программное обеспечение RealNetworks позволяет с плеера клиента управлять потоком на уровне простых  действий -  приостановка трансляции, “перемотка” вперед или назад. 

 

           3. Функциональные возможности редактора.

    

  Для того, чтобы осуществить полноценное редактирование видеофильма (включая вырезку фрагментов, вставку, объединение),  все, что можно было сделать имеющимися на настоящий момент средствами – это загрузить его целиком на компьютер пользователя и дальше работать с редактором, установленном на этом компьютере. В состав программного обеспечения  RealNetworks входит специализированный редактор rm файлов – Helix RealMedia Editor. Использование этого редактора (или аналогичного по своим возможностям)  полезно при решении многих  задач, но имеет  ряд принципиальных ограничений. Прежде всего, как уже отмечалось,  требование пересылки сервером клиенту всего видеофайла  часто не реалистично из-за его размеров, значительных даже в формате RealVideo, и в любом случае  владелец контента может не разрешать загрузки медиа объектов на компьютеры пользователей. Кроме того,  даже если файл отредактирован пользователем на своем компьютере, отредактированный вариант оказывается недоступен другим пользователям  Интернет как для просмотра, так и дальнейшего редактирования до тех пор, пока он не будет помещен на какой либо  видеосервер или переслан целиком на их компьютеры. Также следует иметь в виду, что возможности RealMedia Editor предполагают в основном операции выделения и запоминания фрагмента из rm файла или удаления фрагмента. На склеивание фрагментов налагаются очень жесткие ограничения (должны быть одинаковые размеры экрана видео, параметры кодирования и т.д.). Авторы данной работы разработали метод работы с потоковой медиа информацией, позволяющий преодолеть эти ограничения.

 В настоящей работе описывается реализация  программных средств, обеспечивающих  полнофункциональное редактирование  потокового видео и аудио,  размещенного на различных удаленных серверах в сети, без какой-либо модификации медиа файлов, хранящихся в базах данных этих серверов. Важно отметить, что в составе этих программных средств нет клиентской части. Все, что нужно иметь пользователю на своем компьютере, - это стандартный  браузер,  поддерживающий JavaScript (при отладке программы проверялись на таких браузерах, как Internet Explorer начиная с версии 5.5 и выше, Mozila Firefox начиная с версии 1.0 и выше, Netscape Navigator начиная с версии 7.0 и выше, а также  Safari), и  RealPlayer начиная с версии 9 и выше. Разработанные программные средства  размещаются на сервере, требования к которому заключаются в том, что его программное обеспечение должно включать  стандартный HTTP сервер (например, Apache) и видеосервер из семейства Helix. На этом сервере также могут быть размещены сами медиа файлы, которые  транслируются по протоколу RTSP. Однако пользователю также доступны для редактирования потоки, транслируемые с любых других серверов в Интернете по  протоколу RTSP в нужных форматах. Так, например, пользователь может вставить фрагмент видеофильма расположенного на  одном видеосервере в фильм хранящийся на другом, и результат будет доступен для просмотра и дальнейшего редактирования, как на его компьютере, так и на других компьютерах подключенных к Интернету. В принципе, если весь медиа контент размещен на других серверах, для работы описываемого программного обеспечения достаточно  иметь только стандартный HTTP сервер.

  Однако, предполагается, что несмотря на возможность осуществлять редактирование медиа потоков транслируемых распределенными серверами, при решении многих прикладных задач  “базовый” сервер, на котором установлено описываемое программное обеспечение, будет использоваться для размещения объемной библиотеки видео и аудио клипов непосредственно на этом сервере. В  тех случаях, когда медиа файлы физически размещены на других  серверах, осуществляющих их трансляцию, на  “базовом” должны хранится   ссылки на URL этих  файлов.  Для управления этими ресурсами  в состав разработанного программного обеспечения  входит база данных и набор утилит для ее поддержки.  В базе данных содержатся описания медиа файлов.  Описание файла состоит из таких полей, как “Тип документа” (видео, аудио, проект, фотография, текст), “Название”, “Аннотация”, “Дата создания” и т.д.  По содержимому этих записей может осуществляться поиск документов. Кроме этого существуют служебные поля, например “URL документа”, “Владелец документа”. Для текстовых полей записи могут иметь произвольную длину. Медиа объекты, описания которых присутствуют в базе данных,  различаются по доступу:  общие объекты, к которым возможен доступ всем пользователям, и объекты, доступные только самому пользователю.

 Разработанный поисковый механизм, базирующийся на структуре B-дерева,  позволяет локализовать нужную информацию среди больших объемов данных.  Поисковыми  являются все слова, встречающиеся в записях базы данных, за исключением тех полей, которые объявляются неиндексируемыми, и  так называемых стоп-слов. При этом не только имеется возможность маскирования  слов, но и учитывается их морфология.   Для задания сложных запросов используются логические комбинации слов. При поиске по дате можно указывать диапазон дат.  Результаты  поиска отображаются в виде, удобном для быстрого отбора наиболее релевантной информации, - в списке, где кратко представляются найденные записи, а сами записи полностью могут быть просмотрены в специальном окне.  Результаты поиска могут быть упорядочены в соответствии с типом найденных записей, датой и т.д.  Разработанные утилиты обеспечивают выполнение таких операций как ввод, удаление и редактирование записей. С точки зрения реализации, работа с базой данных осуществляется путем заполнения пользователем соответствующих форм  на HTML странице, которые затем передаются по протоколу HTTP серверу. Сервер по этим запросам вызывает соответствующие CGI-программы, которые реализуют необходимые функции.

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

 

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

 

 

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

   Для поиска документов необходимо перейти в режим поиска, после этого заполнить необходимые поля формы запроса. Можно указать тип необходимых медиа объектов (видео, аудио, или фото) или их комбинации, задать запрос, содержащий ключевые слова, которые присутствуют в названии или аннотации,  можно также указать дату (или диапазон дат) создания искомых объектов и способ упорядочивание результатов поиска – списка  названий найденных объектов. Далее можно прочитать аннотацию объекта в отдельном окне и активировать сам медиа объект.        Просмотр видео клипов производится во встроенном окне RealPlayer – окне редактирования (если пользователь не собирается осуществлять редактирование видео, а просто хочет его просмотреть, средства пакета позволяют вызвать стандартный RealPlayer, который будет управляться обычным образом). Во время просмотра в окне редактирования пользователь может пользоваться кнопками просмотра (или прослушивания) медиа объектов (Play, Pause, Stop), а также позиционировать документ с помощью временной линейки. Имеется также возможность “покадрового” просмотра для точного позиционирования, т.е. передвижения по видеопоследовательности  вперед и назад с заданным временным шагом. При этом пользователь может выбирать величину шага из списка (3с, 2с, 1с, 0.5с, 0.25с, 0.1с). Кроме того, пользователь имеет возможность изменить размер встроенного экрана RealPlayer (также из  списка возможных значений).

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

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

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

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

    Для наполнения проекта медиа содержанием используется метод, аналогичный редактированию документов с использованием операций копирования и вставки. Сначала выбирается  фрагмент из исходного медиа объекта или уже существующего проекта (это может быть и весь объект), «копируется» во временную память (фактически запоминаются только тайм-коды), а затем вставляется  в проект.  Для этого нужно во время  просмотра видео клипа (или прослушивания аудио) в окне редактирования отметить начало и конец фрагмента. То есть пользователь, просматривая или прослушивая клип, в нужном месте останавливает его и с помощью кнопок [Отметить начало] и  [Отметить конец] выделяет фрагмент (если отмечено только начало или конец фрагмента, то по умолчанию другой точкой считается соответственно конец или начало всего клипа). При этом можно использовать точное позиционирование. Также имеется кнопка [Выделить все]. Используя комбинации этих кнопок, можно отметить границы любого фрагмента.  После выделения фрагмент можно запомнить, нажав кнопку [Копировать]. Для уменьшения количества действий пользователя, можно сразу объявить  выделенный фрагмент  новым проектом. Для этого после выделения фрагмента необходимо нажать кнопку [Сохранить]. Пользователю будет предложено задать необходимую информацию о новом проекте, и после ее задания будет создан новый проект и в него занесется выделенный фрагмент.

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

Важно отметить, что при объединении фрагментов в проект не имеет значения вид фрагментов (аудио или видео), их формат (rm, mp3 или mpeg), а также размер видео экрана и параметры кодирования.

Кроме упомянутых выше действий, реализована операция вырезания (удаления) выделенного фрагмента из проекта. Для этого используется кнопка [Удалить]. После завершения работы над проектом, пользователь может получить URL ссылку на него, что позволяет, например, использовать созданный проект как составную часть учебного курса для дистанционного образования или мультимедийной презентации. Также в состав описываемого программного обеспечения входят средства, позволяющие контролировать параметры видео потока, представленного в окне редактирования, и изменять настройки встроенного плеера (аналогично тому как это осуществляется в стандартном  RealPlayer.

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

 

 

                      Литература

 

1.     RealNetworks  Production Guide.  RealNetworks, Inc.,

http://service.real.com/help/library/guides/ProductionGuide/prodguide/

          realpgd.htm

     

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