MovieGo es una poderosa biblioteca de Golang desarrollada específicamente para fines de edición de video. Con su amplia gama de características y funcionalidades, MovieGo tiene como objetivo agilizar y simplificar el proceso de edición de vídeo.
Al aprovechar las capacidades del paquete ffmpeg-go, MovieGo brinda a los usuarios una experiencia fluida y eficiente al trabajar con el renombrado ffmpeg biblioteca. Ya sea que se trate de realizar tareas comunes de edición de video o de abordar operaciones más complejas, MovieGo está equipado para manejarlas todas con una velocidad y precisión excepcionales.
Instalar
Puede instalar la biblioteca ejecutando:
go get github.com/mowshon/moviego
Ejemplos
1- Cambiar el tamaño del vídeo
Actualmente hay tres métodos en el paquete que te ayudan a cambiar el tamaño del vídeo:
ResizeByWidth( new width )
ResizeByHeight( new height )
Resize( new width, new height )
package main
import (
"github.com/mowshon/moviego"
)
func main() {
first, _ := moviego.Load("forest.mp4")
first.ResizeByWidth(500).Output("resized-by-width.mp4").Run()
first.ResizeByWidth(150).Output("resized-by-height.mp4").Run()
first.Resize(1000, 500).Output("resized.mp4").Run()
}
Estos comandos en ffmpeg:
ffmpeg -i forest.mp4 -vf scale=500:210 resized-by-width.mp4 -y
ffmpeg -i forest.mp4 -vf scale=150:62 resized-by-height.mp4 -y
ffmpeg -i forest.mp4 -vf scale=1000:500 resized.mp4 -y
2- Cortar vídeos
El Video
estructura tiene un SubClip
Método que puede recortar el vídeo especificando el principio y el final del segmento de vídeo.
package main
import (
"github.com/mowshon/moviego"
"log"
)
func main() {
first, _ := moviego.Load("forest.mp4")
// Cut video from second 3 to second 5.
err := first.SubClip(3, 5).Output("final.mp4").Run()
if err != nil {
log.Fatal(err)
}
}
3- Combina varios videos en uno en Golang
Al tener varios videos, puedes combinarlos en uno solo. Puede aplicar diferentes efectos a los videoclips de una porción al mismo tiempo.
func main() {
first, _ := moviego.Load("forest.mp4")
second, _ := moviego.Load("sky.mp4")
// Combine multiple videos into one.
finalVideo, err := moviego.Concat([]moviego.Video{
first,
second,
first.SubClip(1, 3),
second.SubClip(5.3, 10.5),
first.FadeIn(0, 5).FadeOut(5),
})
if err != nil {
log.Fatal(err)
}
renderErr := finalVideo.Output("final.mp4").Run()
if err != nil {
log.Fatal(renderErr)
}
}
4- Agregue una transición de aparición o desaparición gradual para video y audio
Aquí tenemos 4 métodos para trabajar con Fade
efectos. Dos para vídeo y dos para pistas de audio del vídeo.
.FadeIn(start, duration)
– El vídeo aparece gradualmente desde el principio (la pantalla está en negro) hasta el intervalo de tiempo especificado..FadeOut(seconds before the end)
– Desvanecimiento del vídeo en una pantalla completamente negra. Debes especificar en segundos desde el final del video cuándo comenzar a desvanecerse..AudioFadeIn(start, duration)
– Si desea que la pista de audio esté completamente silenciada al principio, puede especificar el comienzo en 0,5 segundos..AudioFadeOut(seconds before the end)
– La pista de audio se desvanecerá al final dependiendo del intervalo especificado en segundos hasta el final del video.
func main() {
first, _ := moviego.Load("forest.mp4")
// Add fade-in and fade-out
first.FadeIn(0, 3).FadeOut(5).Output("fade-in-with-fade-out.mp4").Run()
// Cut video and add Fade-in
first.SubClip(5.20, 10).FadeIn(0, 3).Output("cut-fade-in.mp4").Run()
// Mute the sound for the first 0.5 seconds and then
// turn the sound on with the fade in.
first.AudioFadeIn(0.5, 4).Output("audio-fade-in.mp4").Run()
// Add video fade-out with audio fade-out.
first.FadeOut(5).AudioFadeOut(5).Output("fade-out.mp4").Run()
}
5- Captura de pantalla: guardar un fotograma de un videoclip en Golang
Puede hacer una captura de pantalla especificando el tiempo deseado del video en segundos.
func main() {
first, _ := moviego.Load("forest.mp4")
// A simple screenshot from the video.
first.Screenshot(5, "simple-screen.png")
// Take a screenshot after applying the effects.
first.FadeIn(0, 3).FadeOut(5).Screenshot(0.4, "screen.png")
}
Licencia
- Licencia MIT
Recursos
Etiquetas
Ir a la programación de la biblioteca de idiomas