# грузим в переменную a аудиофайл a = DirectShowSource("доклад.mp3") global fps = 30.0 # количество кадров в секунду в результирующем клипе global tempo = 120.0 # на сколько % ускоряем клип # глобальные переменные, в них будем хранить счетчик фреймов global frame_start = 0 global frame_end = 0 # функция перевода времени мин-сек в фреймы с учетом частоты кадров и ускорения клипа function toFrame(int min, int sec) { return Round((min*60 + sec)*fps*100/tempo) } # функция загрузки слайда в ряд фреймов длинной min-sec function loadSlide(string name, int min, int sec) { global frame_start = frame_end global frame_end = toFrame(min, sec) slide = ImageSource(name, fps=fps, end=frame_end - frame_start) # это хак для отладки - выводит дебаг-строчку прямо на видео в левом верхнем углу # slide = slide.Subtitle(String(frame_start) + "-" + String(frame_end), text_color=$000000, size=60, first_frame=0) return slide } # загрузим первый слайд в переменную i сделав из него видеоряд длинной в 2 минуты 3 секунды i = loadSlide("Slide (1).jpg", 2, 3) # так же для второго слайда и так далее i = i + loadSlide("Slide (2).jpg", 2, 26) i = i + loadSlide("Slide (3).jpg", 5, 41) i = i + loadSlide("Slide (4).jpg", 7, 38) i = i + loadSlide("Slide (5).jpg", 11, 30) i = i + loadSlide("Slide (6).jpg", 20, 43) i = i + loadSlide("Slide (7).jpg", 29, 13) i = i + loadSlide("Slide (8).jpg", 29, 23) i = i + loadSlide("Slide (9).jpg", 33, 40) i = i + loadSlide("Slide (10).jpg", 36, 15) i = i + loadSlide("Slide (11).jpg", 36, 25) i = i + loadSlide("Slide (12).jpg", 39, 12) i = i + loadSlide("Slide (13).jpg", 40, 38) i = i + loadSlide("Slide (14).jpg", 42, 21) i = i + loadSlide("Slide (15).jpg", 43, 5) i = i + loadSlide("Slide (16).jpg", 43, 19) i = i + loadSlide("Slide (17).jpg", 48, 53) i = i + loadSlide("Slide (18).jpg", 55, 54) i = i + loadSlide("Slide (19).jpg", 58, 32) i = i + loadSlide("Slide (20).jpg", 60, 13) # ресайзим слайды i = i.LanczosResize(764, 480) # чтобы секономить время слушателя, включаем скорость 'tempo'% a = a.TimeStretch(tempo=tempo) # и в конце концов смерджим два потока и возвращаем этот результат AudioDub(a, i)
Enjoy!
Комментариев нет:
Отправить комментарий