SA SYNC
- Title
- «SA SYNC»
- Author
- Stas Fomin
- Subfooter
- Stas Fomin, 19:21, 13 September 2012
Видео в HD-качестве, смотрите в полноэкранном режиме.
HTML-код включения <iframe src="http://player.vimeo.com/video/48092917?byline=0&portrait=0" width="800" height="500" frameborder="0"></iframe>
Contents
SA: продвинутая синхронизация .-.
Задание «SA INIT» уже выполнено? Если нет → SA INIT
Берем
- запись с двух камер
- скринкаст
Синхронизируем
- по звуку
- событию (на глаз) + по звуку
Делаем «Матрешку»
Исходники .-.
Создаем тестовый проект
- sa-test4sync-cam.avi
- cam1
- sa-test4sync-keyboard.avi
- cam2
- sa-test4sync-screencast.avi
- screen1
Видео в HD-качестве, смотрите в полноэкранном режиме.
HTML-код включения <iframe src="http://player.vimeo.com/video/49178506?byline=0&portrait=0" width="300" height="200" frameborder="0"></iframe>
Видео в HD-качестве, смотрите в полноэкранном режиме.
HTML-код включения <iframe src="http://player.vimeo.com/video/49178503?byline=0&portrait=0" width="320" height="120" frameborder="0"></iframe>
Видео в HD-качестве, смотрите в полноэкранном режиме.
HTML-код включения <iframe src="http://player.vimeo.com/video/49178504?byline=0&portrait=0" width="320" height="200" frameborder="0"></iframe>
Потоки .-.
start_time.py .-.
REFERENCE_STREAM={} #Uncomment this (and modify appropriately) if you want to time linking to other stream #execfile(ut.get_script_dir() + '/../cam1/start_time.py', globals(), REFERENCE_STREAM) diff_ms = 0 if 'START' in REFERENCE_STREAM: diff_ms = REFERENCE_STREAM['START'] # Linking by some visible event their_time_ms = ut.time2ms('1:23') # Time of the event on reference stream my_time_ms = ut.time2ms('53:45') # Time of the event on visible stream diff_ms += int(my_time_ms - their_time_ms) diff_ms += 1234 START = diff_ms AVS = "global TRIM_START_MS = %(diff_ms)s " % vars()
cam2/… .-.
cam2/audio.avs .-.
#Audio AVS-script, for opening with WAVSource function. #Time-adjusted according to start-time.py import("common.avs") audio = AVISource("source.py.avs").KillVideo() #Uncomment following lines, if you want to use external audio file. import("start_time.py.avs") #audio = WavSource("source.avs.wav") audio = audio.TrimAudioMS(TRIM_START_MS) audio
screen1/audio.avs .-.
#Audio AVS-script, for opening with WAVSource function. #Time-adjusted according to timediff.py import("common.avs") import("start_time.py.avs") #[Un]comment following lines, if you want/not want to use internal audio channel. audio = AVISource("source.py.avs").KillVideo() #[Un]comment following lines, if you want/not want to use external audio file. #audio = WavSource("audio.wav") #[Un]comment following lines, if you want/not want to use screen2log datas #import("screen2log_audio.avs") #audio = screen2log_audio() audio = audio.TrimAudioMS(TRIM_START_MS) audio
Попробуйте синхронизовать! .-.
Правильные ответы (мои, смотреть файлы start_time.py.avs):
- cam1
- 0
- cam2
- 19680
- screen1
- 12456
Синхронизация:
- камера/screencast: ±секунда — ОК
- жесты/речь: ±800мс — ОК.
- губы/речь: ±150мс — ОК (лучше ±50мс).
- сложение двух звуковых потоков — ±25мс
Задания .-.
- Бонус задание
- синхронизируйте
- относительно сam2
- относительно screen1
- Проверьте синхронизацию с разной глубиной --start
- Соберите матрешку
Должно получится … .-.
Устройства ввода, эмоции, направление взгляда
ВСЕ! .-.
Этого достаточно:
- Монтировать 95% внутрикомпанейских видео.
- Не приходя в сознание!
- MKV-публикуется на файл-сервере.
- Ссылки на отрывки с вики-системы.