Difference between revisions of "SA SYNC"
From Wiki4Intranet
(→Попробуйте синхронизовать! .-.) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
− | {{vimeoembed||800|500}} | + | {{vimeoembed|48092917|800|500}} |
== SA: продвинутая синхронизация .-. == | == SA: продвинутая синхронизация .-. == | ||
Line 27: | Line 27: | ||
}} | }} | ||
− | {{vimeoembed|49178506| | + | {{vimeoembed|49178506|300|200}} |
{{vimeoembed|49178503|320|120}} | {{vimeoembed|49178503|320|120}} | ||
{{vimeoembed|49178504|320|200}} | {{vimeoembed|49178504|320|200}} | ||
Line 68: | Line 68: | ||
</code-python> | </code-python> | ||
− | == | + | == cam2/… .-. == |
<graph> | <graph> | ||
Line 120: | Line 120: | ||
audio | audio | ||
</code-perl> | </code-perl> | ||
+ | |||
+ | === screen1/audio.avs .-. === | ||
+ | |||
+ | <code-perl> | ||
+ | #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 | ||
+ | </code-perl> | ||
+ | |||
== Попробуйте синхронизовать! .-. == | == Попробуйте синхронизовать! .-. == | ||
Line 134: | Line 159: | ||
* сложение двух звуковых потоков — {{@|±25мс}} | * сложение двух звуковых потоков — {{@|±25мс}} | ||
− | - | + | == Задания .-. == |
− | Бонус задание: синхронизируйте | + | ;Бонус задание: синхронизируйте |
* относительно сam2 | * относительно сam2 | ||
* относительно screen1 | * относительно screen1 | ||
− | + | * Проверьте синхронизацию с разной глубиной <tt>--start</tt> | |
− | + | * Соберите матрешку | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Должно получится … .-. == | == Должно получится … .-. == | ||
Устройства ввода, эмоции, направление взгляда | Устройства ввода, эмоции, направление взгляда | ||
− | <slides | + | <slides split="----"> |
[[File:SeminarAssembler для UX sessions.png|center]] | [[File:SeminarAssembler для UX sessions.png|center]] | ||
---- | ---- | ||
Line 167: | Line 183: | ||
Этого достаточно: | Этого достаточно: | ||
* Монтировать 95% внутрикомпанейских видео. | * Монтировать 95% внутрикомпанейских видео. | ||
+ | ** Не приходя в сознание! | ||
* MKV-публикуется на файл-сервере. | * MKV-публикуется на файл-сервере. | ||
* Ссылки на отрывки с вики-системы. | * Ссылки на отрывки с вики-системы. |
Latest revision as of 19:21, 13 September 2012
- Title
- «SA SYNC»
- Author
- Stas Fomin
- Subfooter
- Stas Fomin, 19:21, 13 September 2012
Contents
SA: продвинутая синхронизация .-.
Задание «SA INIT» уже выполнено? Если нет → SA INIT
Берем
- запись с двух камер
- скринкаст
Синхронизируем
- по звуку
- событию (на глаз) + по звуку
Делаем «Матрешку»
Исходники .-.
Создаем тестовый проект
- sa-test4sync-cam.avi
- cam1
- sa-test4sync-keyboard.avi
- cam2
- sa-test4sync-screencast.avi
- screen1
Потоки .-.
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-публикуется на файл-сервере.
- Ссылки на отрывки с вики-системы.