Files
goffmpeg/ffmpeg/ffmpeg.go

43 lines
944 B
Go

package ffmpeg
import (
"github.com/xfrr/goffmpeg/utils"
"os/exec"
"bytes"
"strings"
)
type Configuration struct {
FfmpegBin string
FfprobeBin string
}
func Configure() (Configuration, error) {
var outFFmpeg bytes.Buffer
var outProbe bytes.Buffer
execFFmpegCommand := utils.GetFFmpegExec()
execFFprobeCommand := utils.GetFFprobeExec()
cmdFFmpeg := exec.Command(execFFmpegCommand[0], execFFmpegCommand[1])
cmdProbe := exec.Command(execFFprobeCommand[0], execFFprobeCommand[1])
cmdFFmpeg.Stdout = &outFFmpeg
cmdProbe.Stdout = &outProbe
err := cmdFFmpeg.Run()
if err != nil {
return Configuration{}, err
}
err = cmdProbe.Run()
if err != nil {
return Configuration{}, err
}
ffmpeg := strings.Replace(outFFmpeg.String(), utils.LineSeparator(), "", -1)
fprobe := strings.Replace(outProbe.String(), utils.LineSeparator(), "", -1)
cnf := Configuration{ffmpeg, fprobe}
return cnf, nil
}