Огляд можливостей Video Online
Основною метою, що спонукала мене написати цю статтю, стало бажання пограти з цифровою відеокамерою, попередньо придумавши гідне пояснення цьому заняттю - online картинки і відео в Internet, а також подивитися, що і для чого сьогодні можна в цьому плані застосувати.
Устаткування
Незважаючи на те, що багато сучасних відеокарт мають
можливість оцифровки зовнішнього відеосигналу (див. ), використання додаткової плати може бути більш вигідно, тому що для неї підходить навіть найдешевша відеокарта. До того ж використання побутової відеокамери набагато дорожче. У такий спосіб був обраний комплект від компанії ProLink PixelView Meeting PAK (вартість <$140). У його склад входить усе необхідне устаткування для наших цілей: PCI плата відеовведення, кольорова цифрова відеокамера, мікрофон і деякий набір драйверів і програм для всього цього. З альтернативних відзначимо варіанти з камерою на рівнобіжному порту (наприклад Connectix) чи на USB шині (Intel). Сьогодні перші вже не забезпечують необхідної якості, а другі ще занадто молоді і (сподіваюся поки) не досить універсальні.
Плата відеовведення зібрана на чіпі Bt848, що часто використовується й іншими виробниками, у тому числі Intel, Creative, ATi, Hauppauge, Video Labs. На жаль даний екземпляр не має драйверів для Windows NT, тільки Windows 95/98. Плата має вхід Video, вхід для камери Philips CCD чи S-Video (у залежності від модифікації) і вихід харчування 5/12В для камер інших виробників. Крім того у варіанті для камери Philips є внутрішнє рознімання для виходу сигналу з мікрофона камери. Параметри плати звичайні:
Підтримка NTSC/PAL/SECAM
Підтримка форматів RGB32/24/15/8, YUV12/9/2, BtYUV*
Розмір картинки для capture: до NTSC 640x480, PAL 768x576
Сумісність з Microsoft Video for Windows
* із приводу форматів є одне зауваження. Для їхньої коректної роботи необхідні відповідні кодеки. Їх можна подивитися в Start/ Control Panel/ Multimedia/ Devices/ Video Compression Codecs. На жаль деякі програми не надають можливість вибору кодеки. Наприклад MS NetMeeting просто не працював з PixelView, поки я не установив Intel Indeo 4.31 (шукайте файл ivi_nt95.exe). Аналогічна ситуація буває і з деякими іграшками, що мають відеофрагменти під цей кодек.
Камера також стандартна для цього класу продуктів. Її характеристики:
Розрішення 512x582 PAL / 512x492 NTSC*
Об'єктив 3.8mm F2,0
Viewing angle 51x39
Мін. освітленість <10 lux
Живлення 5В, <2.5Ут
Убудований мікрофон
Органи керування: живлення, "Back Light", баланс білого (фіксований чи автомат), інверсне зо9браження, контраст, фокус.
* ще одне зауваження. Є камери Philips і з великим розрішенням. У назві моделі VCM7319 друга цифра (3) говорить саме про це. Краще, якщо вона 4, тоді дозвіл може бути до 768x582 PAL і горизонтальне до 490.
Якість оцифровки сигналу цією платою мене приємно здивувало. Згадуючи такі продукти, як Tekram M200, Hiway Xtreme, FlyVideo, я не очікував такої передачі кольору і розрішення.
Природно при бажанні можна використовувати і будь-яке інше джерело відеосигналу. Наприклад чи відеомагнітофон відеокамеру. У таких випадках якість звичайна зростає разом з ціною (але не більше, ніж можливості карти).
Як це працює
Трансляція "живого" звуку чи відео відрізняється від простої передачі файлів по протоколах http чи ftp. Крім того, що вона є передачею із синхронізацією за часом, ще і допускаються втрати. Більшість продуктів для даної технології використовують сімейство протоколів TCP/IP (включаючи UDP і TCP) для передачі даних. Крім цього деякі продукти використовують можливості TCP/IP для широкомовної роботи.
У загальному випадку існують дві програми - клієнт, що приймає потік, і сервер, його передавач. При цьому може бути як цілеспрямована передача від сервера конкретному клієнту, так і іншим. Природне число одночасне трансльованих потоків обмежено потужністю сервера.
Більш складний варіант "живої" трансляції містить у собі (формально) три ПК. Перший (кодер) робить оцифровку сигналу, його упакування і транслює потік на сервер. Другий (сервер) приймає потік від кодера і надає його для перегляду третьому ПК (клієнту). Природно, що можна всі три програми запустити і на одному, досить продуктивному, ПК.
Джерелами інформації можуть служити попередньо підготовлені аудіо/відео чи файли "живаючи" трансляція. В останньому випадку кодування відбувається на лету, що вимагає великих обчислювальних потужностей. Для кодування використовуються алгоритми, подібні JPEG/MPEG. При цьому основним параметром є швидкість вихідного потоку. Наприклад звукові файли звичайно кодуються для швидкостей від 8Kbps (кілобит у секунду) до 80Kbps. Природно, що і якість такого кодування різне. Як приклад приведемо 16bit 22KHz mono , закодований на , і . Кодування вироблялося у формат RealAudio, тому для прослуховування необхідний RealPlayer (див. ). До речі, для кодування мови і музики можна застосовувати різні алгоритми, оскільки структура і призначення таких файлів різні.
З відео всі небагато складніше. У відео легко виділити два протилежних (при обмеженні смуги) критерію якості: якість картинки і динаміка (приблизно частота кадрів). Тому звичайно відбувається оптимізація під задану смугу пропущення і при цьому можна вибирати між чіткими картинками з маленькою частотою чи кадрів динамічними, але більш нечіткими. Природно такий вибір приходиться робити тільки якщо трансляція розраховна на передачу по модему (тобто повільно). Для локальної чи мережі швидкісного каналу (швидкість від 80kbps) цілком реально мати одночасно і швидкість і якість.
Приклади:
Вихідний AVI файл basket.avi 668K (оригінал можна знайти в MS Office97). Формат: звук PCM,11 025 Hz; 8 Bit; Mono, зображення 3.45 сек, 240 x 180, 24 Bits, 73 Frames, 24 Frames/Sec, IR32, 219 KB/Sec. (це можна подивитися наприклад під Windows98 у властивостях файлу). Два останніх параметри показують кодек і швидкість під