Wed. Dec 25th, 2024

MovieGo: La mejor biblioteca Golang para editar vídeos

By admin Jan 31, 2024

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

By admin

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *