func (c *Command) BuildWithContext(ctx context.Context) *exec.Cmd {
	cmd := exec.CommandContext(ctx, c.FFmpegPath, c.GetArgs()...)
	if c.input != nil {
		cmd.Stdin = c.input
	}
	if c.output != nil {
		cmd.Stdout = c.output
	}
	if c.logs != nil {
		cmd.Stderr = c.logs
	}
	return cmd
}
BuildWithContext is like Build but includes a context which is used to kill the process
package fluentffmpeg
import (
	"context"
	"io"
	"os/exec"
	"reflect"
	"strings"
	"github.com/fatih/structs"
)
type Command struct {
	FFmpegPath string
	Args       *Args
	input      io.Reader
	output     io.Writer
	logs       io.Writer
}
func NewCommand(ffmpegPath string) *Command {
	if ffmpegPath == "" {
		ffmpegPath = "ffmpeg"
	}
	return &Command{
		FFmpegPath: ffmpegPath,
		Args: &Args{
			output: outputArgs{
				constantRateFactor: -1,  
			},
		},
	}
}
func (c *Command) Run() error {
	return c.Build().Run()
}
func (c *Command) RunWithContext(ctx context.Context) error {
	return c.BuildWithContext(ctx).Run()
}
func (c *Command) Build() *exec.Cmd {
	return c.BuildWithContext(context.Background())
}