User:StasFomin/VideoKnowHow

From Wiki4Intranet
Jump to: navigation, search
Title

Let's do it quicky! With video…
Author
Стас Фомин
Footer
StasFomin/VideoKnowHow
Subfooter

Стас Фомин, 00:37, 7 June 2011


User:StasFomin/Правильная видеокамера


Скринкастер? Зачем еще один? …⌘⌘

Проблемы существующих :

  • Надо lossless
  • Надежность. Упал (BSOD) — все пропало!
  • Не грузить — не мешать показу (CPU, память).
  • Рассинхронизация со звуком

Два типа скринкастеров ⌘⌘

Перехват GDI (ScreenFlash)
  • Экономный файл.
  • Малая загрузка CPU в среднем.
  • Глюки записи — теряются «действия»
  • Под нагрузкой (видео) — дохнет.

Классический скриншотинг
  • надежность (траблы с видео через DirectX…)
  • нагрузка

Видеомонтаж с камерой ⌘⌘

Суперкритично! ♆♆♆

Для видеомонтажа с видеокамерой:

  • Синхрон с истинным временем
  • ±1 сек — не критично
  • но куммулятивный рассинхрон — убивает!

Решение: Очевидное ⌘⌘

  • Писать блоками (секунд 10-30)
  • Питаться объедками
    • самый низкий приоритет
    • давать, что дают (сколько кадров останется, даже ноль).
    • потом восстановить (нелинейный монтаж)
  • звук писать отдельно
    • все равно его надо обрабатывать.


Классический видео— оператор и монтаж — правила …⌘⌘

  • Развлечение зрителя → почаще
    • Чередовать планы, показывать разное
    • «Телевизор» — нарезка самого возбуждающего
  • Пример — «свадьбы».
  • Затратно!
    • Оператор загружен — выделенный участник.
    • Видеомонтажер дуреет, трата кучи времени.

Классический видеомонтаж — инструменты …⌘⌘

  • Pinnacle
  • Adobe Premiere
  • Ulead (Corel) Video Studio
  • GUI: классический «дорожечный интерфейс»
  • Ужасно трудоемко!
  • Не автоматизируемо, не шаблонизируемо, не модифицируемо.

Классический видео— оператор и монтаж — нафиг …⌘⌘

  • Не нужно!
  • Просмотр активный, можно
    • перемотать
    • ускорить
    • повторить
  • Оператора заменить еще одной камерой.
  • Не надо разворачивать камеру — нагрузка минимальна.

Ленивый видеомонтаж ⌘⌘

Приоритеты

  • Экран
  • Докладчик
  • Зал

Ленивый вариант:

HTML-код включения <iframe src="http://player.vimeo.com/video/22207233?byline=0&portrait=0" width="720" height="405" frameborder="0"></iframe>

Скачать → на странице видео на vimeo, кнопка «Download»

Видеомонтаж семинаров — как упаковка ⌘⌘

Иначе — надо «паковать» в экспортный формат 1280×720.

  • Дискуссия в зале — максимум видео зала
  • Докладчик рисует на маркерной доске — максимум видео докладчика
  • Кодинг в IDE — максимум экрана

Как?

Необходимое — синхронизация потоков … ⌘⌘

  • Одна или две камеры
  • Экран
  • Звук от камер
  • Звук с микрофона компьютера

Синхронизация по видео …⌘⌘

  • С экраном:
    • Перещелк слайдов
    • Движение на экране
  • Две камеры — по движениям:
    • специальные: рука перед камерой
    • особые: докладчик чешет нос

Синхронизация по звуку ⌘⌘

Sonic Visualizer.png

Views …⌘⌘

  • Виды/Перспективы/Планы
  • «Упаковка» видеопотоков на кадр
  • «Хардкодинг, максимум экрана, чуть докладчика»
  • «Слайды слева от докладчика»
  • «Слайды справа от докладчика» (мечется, ссуко!)
  • «Экран + Докладчик + Зал»
  • Это дизайн!
  • Рисуем в Inkscape

«Хардкодинг, максимум экрана, чуть докладчика» ⌘⌘

Хардкодинг, максимум экрана, чуть докладчика.svg

«Экран + Докладчик + Зал» ⌘⌘

Экран + Докладчик + Зал.svg

«Экран + Докладчик + Реклама» ⌘⌘

Экран + Докладчик + Реклама.svg

Сцены ⌘⌘

Кодируем быстро! VirtualDub → копипаста времени кадра!

import stastools.VideoEdit as ve
 
views = {
 'S' : 'slides',
 'J' : 'jarnal',
 'H' : 'hall',
 'I' : 'ide'
}
 
scenario = """
0:36.280   S
9:34.600   H
…
28:28.680  S
29:28.680  J
…
1:37:53.600 I
1:46:21.600 H
1:59:30
"""
 
ve.scenario2avs(views, scenario, force_avi=True,
                       audio_source=r'..\sources\screen\audio.avs')
 

Автономный рендеринг ⌘⌘

Магия
ffmpeg+avisynth
Система сборки
  • с анализом зависимостей
  • тоже на Python
  • scheduling на ночь
  • Косяки? → запатчить, повторить сборку. Agile! Асинхронно!