MovieGo это библиотека на Go для монтажа видео. Под капотом она работает поверх пакета ffmpeg-go и даёт API с цепочками методов. Вы пишете обычный Go код, а команду для ffmpeg библиотека собирает сама.Через неё можно нарезать ролик, склеить несколько в один, поменять размер, добавить плавное появление и затухание или снять кадр. Сам
ffmpeg должен стоять в системе отдельно.Размер
ResizeByWidth задаёт ширину, ResizeByHeight высоту, Resize сразу оба значения:first, _ := moviego.Load("forest.mp4")
first.Resize(1000, 500).Output("resized.mp4").Run()Нарезка
SubClip обрезает ролик по началу и концу отрезка в секундах. Тут кусок с третьей по пятую секунду:first.SubClip(3, 5).Output("final.mp4").Run()Склейка
Concat собирает слайс Video в один ролик, прямо в слайсе можно применять эффекты к отдельным кускам:finalVideo, _ := moviego.Concat([]moviego.Video{
first,
second.SubClip(5.3, 10.5),
first.FadeIn(0, 5).FadeOut(5),
})
finalVideo.Output("final.mp4").Run()Появление и затухание
FadeIn и FadeOut работают с картинкой, AudioFadeIn и AudioFadeOut со звуком. Методы складываются в цепочку:first.FadeIn(0, 3).FadeOut(5).Output("fade.mp4").Run()
first.FadeOut(5).AudioFadeOut(5).Output("fade-out.mp4").Run()Скриншот
Screenshot сохраняет кадр по указанной секунде, в том числе после эффектов:first.Screenshot(5, "simple-screen.png")
MovieGo снимает рутину по сборке команд ffmpeg руками и переводит монтаж на понятные методы. Подойдёт, чтобы автоматизировать обработку видео в Go сервисе, например генерировать превью или собирать ролики из частей.➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы • Канал в Max
🐸 Библиотека Go-разработчика
#GoToProduction
