TGViewer
Библиотека Go-разработчика | Golang Библиотека Go-разработчика | Golang @goproglib · 24.1K subscribers
Post #7275 3.09K
📹 Монтаж видео на Go без ручного ffmpeg

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
  • 👍 9
More from @goproglib
  1. Sep 28, 2026🤔 Вопрос с собеседования по Go Что выведет программа? ❤️ — 1 true / 0 false 🔥 — 1 true /…
  2. Sep 28, 2026👩‍💻 Что на самом деле происходит внутри Go map? После Go 1.24 обычный map внутри работае…
  3. Sep 26, 2026🔥 В Go 1.27 появился portable SIMD До этого SIMD-оптимизации в Go требовали архитектурног…
  4. Sep 25, 2026🤡🤡 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoGiggle
  5. Sep 25, 2026💡 Код работает. А data race уже есть В Go можно записать значение в одной горутине, прочи…
  6. Sep 23, 2026💥 TCP/IP: что происходит с данными в сети Когда Go-приложение отправляет данные по сети,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →