Работа с Видео в Asterisk
Некоторые каналы сервера Asterisk имеют поддержку передачи видео:
Каналы H323 (chan_h323, chan_oh323, chan_ooh323) не позволяют в данный момент совершать вызовы с поддержкой видео.
Поддерживаемые видео кодеки:
Стоит отметить, что поддержка видео в Asterisk версии 1.4 до сих пор в зачаточном состоянии (см. главу: основные моменты, ниже). Суммируя нижеизложенное, получаем:
- Asterisk 1.4 имеет проблемы, связанные с согласованием видеокодеков.
- Сервер Asterisk не обменивается и не распознает расширенные атрибуты для видеопотоков, такие как: profile/level (H.263+, MPEG4, H.264), полоса пропускания, standard annexes, частота кадров и размеры изображения.
- Сервер Asterisk не предоставляет возможностей по проигрыванию файлов в классических видеоформатах, таких как: .mov, MP4 или файлов в формате 3gp.
- Сервер Asterisk не предоставляет функционала по перекодировке из одного видеокодека в другой.
Для включения возможности совершать вызовы с поддержкой видео (для протокола SIP), отредактируйте файл sip.conf и добавьте параметр:
[general]
videosupport=yes
Для каждого SIP пользователя, Вам нужно указать поддерживаемые видеокодеки (см. примеры на этой странице). Если Вы не хотите полагаться на согласование видокодеков, которое существует в непропатченном сервере Asterisk версии 1.4.x (и не всегда корректно работает), убедитесь, что вы разрешили только один кодек для видео в Вашем файле sip.conf. Для решения этой проблемы, можно воспользоваться патчем, который описан ниже. И конечно, видеокодеки должны поддерживаться SIP телефонами, которые подключены к серверу Asterisk. Asterisk может работать только в прозрачном режиме при передаче видеопотоков.
Видеоконверторы для Asterisk
- FFasterisk: Утилита для создания видео контекста для Asterisk. Она позволяет конвертировать MOV файлы в пару файлов .H.263 (для видео) и .wav (для звука), с которыми может работать сервер Asterisk.
Программное обеспечение для создания видеоконференций в Asterisk.
- 1videoConference: VVoIP Решение с открытыми исходными кодами от Adiance.
- Mediamixer от Sergio Murillo.
- app_conference: имеет ограниченную поддержку видео.
- Confiance.
Некоторые основные моменты, относительно использования видео в Asterisk
В сервере asterisk версии 1.4, выбор видеокодека содержит дефекты в алгоритме (также смотри данный bug report). Для решения это проблемы IVèS предложил патч, но он не был принят. Кроме того, другая независимая разработка с названием Asterisk videocaps, позволяет надлежащим образом согласовывать fmtp атрибуты, связанные с передачей видеопотоков, в SDP. Это решение было включено в trunk и может быть появится в Asterisk 1.6.
В asterisk 1.6 запланирована глобальная перестройка поддержки видео для различных каналов, но никаких технических условий по реализации не было опубликовано. Кто-то просто хочет включить поддержку videocaps и остановиться на этом. Некоторые имеют более амбициозные планы на этот счет. Рекомендуется ознакомиться со списком рассылки: Asterisk video.
Другая проблема, связана с форматом файлов, которые содержат видео приветствия и подсказки. На данный момент, Asterisk записывает содержимое RTP пакетов, включая некоторую информацию, связанную с таймингом, в файлы с расширением .h263, ph263p, .h264. Sergio Murillo разработал приложение MP4 asterisk apps, которое может проигрывать и записывать файлы в формате MPEG4. Но проблемы, связанные с патентами, не дают возможность компании Digium интегрировать это приложение в состав сервера Asterisk.
Поддержка перекодирования из одного видеокодека в другой (транскодинг) также не поддерживается и, вероятно, не будет поддерживаться в сервере Asterisk. Использование библиотеки ffmpeg для этих целей опять создаст проблемы с лицензированием и патентами. Транскодирование видеокодеков в Asterisk также создает проблемы связанные с уменьшением производительности сервера в целом. Однако, Sergio предложил приложение, которое может выполнять некоторые ограниченные функции, связанные с транскодированием видеокодеков, оно базируется на библиотеке ffmpeg и называется - app_transcoder. Приложение имеет ограничения в текущей версии, но может быть легко расширено по функциональности теми, кто имеет опыт программирования с использованием библиотеки ffmpeg.
Последний момент, представляющий интерес, это возможность обработки ISDN/3G видеовызовов с помощью Asterisk, используя разработки от Sergio. Для дополнительной информации по этому вопросу, смотри: эту страницу.
Следующее клиенты имеют поддержку видео, которая работает совместно с сервером Asterisk:
- Ekiga: SIP H323 Video- H261. MPEG4/H263 в SVN
- AuPix: видеотелефон с поддержкой протоколов SIP и H.323
- Call Image Videotel: аппаратный видеотелефон с поддержкой протокола SIP
- iFon: для PocketPC PDA
- Linphone для ОС Linux - может и не поддерживать видео
- Microsoft Windows Messenger: для ОС Windows
- Wooksung: WVP-2000 SIP (аппаратный телефон)
- Xten eyeBeam: для ОС Windows и OSX
- Видеотелефон Leadtek BVP 8882 SIP.
- Huawei ViewPoint 8220
- Kapanga: Видеотелефон с поддержкой протокола SIP
- GXV-3000: SIP видеотелефон с поддержкой видеокодеков h264 и h263, работающий по протоколу SIP (аппаратный)
- Milliphone: многоплатформенный программный телефон с открытым исходным кодом
Смотри: Видеотелефоны с поддержкой SIP протокола.
There is also some information how to make an 3G-H.324M (UMTS Video) - SIP gateway with asterisk: Asterisk H324M
Некоторые моменты, касающиеся голосовой почты и поддержки видео.
Когда Вы записываете сообщение для голосовой почты, Asterisk также может записывать видео... Единственная проблема, которая при этом возникает, это плохое качество в начале записи, связанное с отсутствием Intra-frame (первого кадра) при записи сообщения приветствия...
Call Image Videotel - содержит специальные возможности для создания нормальной записи, без каких-либо модификаций самого сервера asterisk (Замечание: на данный момент линк битый. Или videotel изменил имя страницы или прекратил поддержку данного продукта).
Обратите внимание: Когда Вы записываете сообщение, используется соответствующий кодек (для примера, пускай будет - H.264) и, если при проигрывании этого сообщения абоненту будет выбран другой видеокодек, тогда видео часть сообщения не будет отдана, т.к. asterisk не поддерживает транскодинг видеокодеков.
Настройка Windows Messenger для работы с сервером Asterisk (по протоколу SIP)
Пример настройки файла sip.conf:
[general]
videosupport=yes
[video2]
type=friend
username=video2
secret=hidden
host=dynamic
context=from-camera
callerid=Video 2 <1222>
canreinvite=no
disallow=all ; Windows Messenger выбирает неправильные кодеки, если указать: allow=all
allow=ulaw
allow=alaw
allow=speex
allow=gsm
allow=h261
allow=h263
allow=h263p
Для более детального описание настроек смотри: