func ProbeURL(ctx context.Context, fileURL string, extraFFProbeOptions ...string) (data *ProbeData, err error) {
	args := append([]string{
		"-loglevel", "fatal",
		"-print_format", "json",
		"-show_format",
		"-show_streams",
	}, extraFFProbeOptions...)
	args = append(args, fileURL)
	cmd := exec.CommandContext(ctx, binPath, args...)
	cmd.SysProcAttr = procAttributes()
	return runProbe(cmd)
}
ProbeURL is used to probe the given media file using ffprobe. The URL can be a local path, a HTTP URL or any other
protocol supported by ffprobe, see here for a full list: https://ffmpeg.org/ffmpeg-protocols.html
This function takes a context to allow killing the ffprobe process if it takes too long or in case of shutdown.
Any additional ffprobe parameter can be supplied as well using extraFFProbeOptions.
package ffprobe
import (
	"bytes"
	"context"
	"encoding/json"
	"fmt"
	"io"
	"os/exec"
)
var (
	binPath = "ffprobe"
)
func SetFFProbeBinPath(newBinPath string) {
	binPath = newBinPath
}