38 lines
668 B
Go
38 lines
668 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
)
|
|
|
|
func ConvertVideo(path string) {
|
|
out := path[:len(path)-len(filepath.Ext(path))] + ".mp4"
|
|
|
|
cmd := exec.Command("ffmpeg",
|
|
"-i", "input.mp4",
|
|
"-c:v", "libx264",
|
|
"-crf", "23",
|
|
"-preset", "medium",
|
|
"-c:a", "aac",
|
|
"-b:a", "128k",
|
|
out,
|
|
)
|
|
|
|
cmd.Stderr = cmd.Stdout
|
|
|
|
_, err := cmd.CombinedOutput()
|
|
|
|
if err != nil {
|
|
fmt.Printf("Error converting %s: %v\n", path, err)
|
|
return
|
|
}
|
|
|
|
if err := os.Remove(path); err != nil {
|
|
fmt.Printf("Converted %s -> %s, but failed to delete original: %v\n", path, out, err)
|
|
return
|
|
}
|
|
fmt.Printf("Converted %s -> %s (original deleted)\n", path, out)
|
|
}
|