вгору

оперативний блогер

05.07.11

Картинка в картинці. pip

Картинка в картинці чи picture in picture, досить потрібна штука в створенні мувіків. З її допомогою можна вставляти морду коментатора, наглядно робити розділення екрану, показуючи вигляд тієї чи іншої гри при різних налаштуваннях графіки. Отож, штука потрібна. Весь час парився і не знав, як це зробити.
Навіть думав шукати якийсь дорогий Sony Vegas чи Adobe Premiere, проте, з прямими руками і свіжими мізками, можна обійтися і без нього.
Довго і нудно розбирався, тож все, що буде потрібно - це Avisynth, VirtuaDubMod, x264vfw.
Роблю скрипт, в блокноті файл з розширенням .avs сейвлю.

main = DirectShowSource("C:\Users\Toss\Desktop\m0.avi") // захоплюю перший і головний відеопотік.
pipm = DirectShowSource("C:\Users\Toss\Desktop\m2.avi") // захоплюю картинку, яку буду вставляти.
pipm = pipm.Crop(960,0,960,1080).trim(3,0) // обрізаю відео, перші два значення - по ширині і висоті, а другі два значення ширини і висоти остаточної картинки. trim - вирізає перші три кадри в цьому випадку.
xpos = 960 // надаю значення xpos 960,  аналогічно з ypos, що не обов'язково робити.
ypos = 0
Overlay(main, pipm, x=xpos, y=ypos) // задаю перекривання першим відео другого, а також координати, верхньої лівої точки відео де вставиться друге.
Цим всім я реалізував розділення екрану двома одночасними відеопотоками.

Дибільно, винаходжу велосипед.
Проблема, що саме відео під час обробки глючило, але помучився і ось що в мене вийшло.

2 коментарі:

  1. Мені здається, що більш наглядно буде показати однакові ліві частини кожного відео з увімкненим та вимкнутим фізіксом. Так дуже складно побачити різницю.

    ВідповістиВидалити