mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-09-27 04:36:12 +08:00
38 lines
851 B
Go
38 lines
851 B
Go
package hardware
|
|
|
|
import (
|
|
"github.com/AlexxIT/go2rtc/internal/api"
|
|
)
|
|
|
|
const ProbeVideoToolboxH264 = "-f lavfi -i testsrc2=size=svga -t 1 -c h264_videotoolbox -f null -"
|
|
const ProbeVideoToolboxH265 = "-f lavfi -i testsrc2=size=svga -t 1 -c hevc_videotoolbox -f null -"
|
|
|
|
func ProbeAll(bin string) []api.Source {
|
|
return []api.Source{
|
|
{
|
|
Name: runToString(bin, ProbeVideoToolboxH264),
|
|
URL: "ffmpeg:...#video=h264#hardware=" + EngineVideoToolbox,
|
|
},
|
|
{
|
|
Name: runToString(bin, ProbeVideoToolboxH265),
|
|
URL: "ffmpeg:...#video=h265#hardware=" + EngineVideoToolbox,
|
|
},
|
|
}
|
|
}
|
|
|
|
func ProbeHardware(bin, name string) string {
|
|
switch name {
|
|
case "h264":
|
|
if run(bin, ProbeVideoToolboxH264) {
|
|
return EngineVideoToolbox
|
|
}
|
|
|
|
case "h265":
|
|
if run(bin, ProbeVideoToolboxH265) {
|
|
return EngineVideoToolbox
|
|
}
|
|
}
|
|
|
|
return EngineSoftware
|
|
}
|