123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package ffmpeg
- import (
- "fmt"
- "os/exec"
- "strings"
- )
- const (
- inputFileIdentifier = "INPUT_VIDEO_FILE"
- )
- var (
- Debug = true
- )
- func MediaInfo(path string) (string, error) {
- out, err := execCommand(
- fmt.Sprintf("-i %s", inputFileIdentifier),
- path)
- if err.Error() == "exit status 1" && strings.HasSuffix(out, "At least one output file must be specified") {
- err = nil
- }
- return out, err
- }
- func execCommand(cmdStr, path string) (string, error) {
- cmdSplit := strings.Split(cmdStr, " ")
- for i, s := range cmdSplit {
- if s == inputFileIdentifier {
- cmdSplit[i] = path
- }
- }
- cmd := exec.Command("ffmpeg", cmdSplit...)
- if Debug {
- fmt.Println("Executing:", cmd)
- }
- out, err := cmd.CombinedOutput()
- if err != nil {
- fmt.Printf("Error: %#v\n", err.Error())
- return strings.TrimSuffix(string(out), "\n"), err
- }
- if Debug {
- fmt.Printf("Output: %s\n", string(out))
- }
- return strings.TrimSuffix(string(out), "\n"), err
- }
|