Add support hardware resize for Rockchip
This commit is contained in:
@@ -163,7 +163,7 @@ func TestParseArgsHwRKMPP(t *testing.T) {
|
|||||||
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http://example.com -c:v h264_rkmpp_encoder -g 50 -bf 0 -profile:v high -level:v 4.1 -an -vf "transpose=1,transpose=1" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
|
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http://example.com -c:v h264_rkmpp_encoder -g 50 -bf 0 -profile:v high -level:v 4.1 -an -vf "transpose=1,transpose=1" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
|
||||||
|
|
||||||
args = parseArgs("http://example.com#video=h264#height=320#hardware=rkmpp")
|
args = parseArgs("http://example.com#video=h264#height=320#hardware=rkmpp")
|
||||||
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http://example.com -c:v h264_rkmpp_encoder -g 50 -bf 0 -profile:v high -level:v 4.1 -an -vf "scale=-1:320" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
|
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http://example.com -c:v h264_rkmpp_encoder -g 50 -bf 0 -profile:v high -level:v 4.1 -height 320 -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParseArgsHwCuda(t *testing.T) {
|
func TestParseArgsHwCuda(t *testing.T) {
|
||||||
|
|||||||
@@ -129,6 +129,21 @@ func MakeHardware(args *ffmpeg.Args, engine string, defaults map[string]string)
|
|||||||
|
|
||||||
case EngineRKMPP:
|
case EngineRKMPP:
|
||||||
args.Codecs[i] = defaults[name+"/"+engine]
|
args.Codecs[i] = defaults[name+"/"+engine]
|
||||||
|
|
||||||
|
for j, filter := range args.Filters {
|
||||||
|
if strings.HasPrefix(filter, "scale=") {
|
||||||
|
args.Filters = append(args.Filters[:j], args.Filters[j+1:]...)
|
||||||
|
|
||||||
|
width, height, _ := strings.Cut(filter[6:], ":")
|
||||||
|
if width != "-1" {
|
||||||
|
args.Codecs[i] += " -width " + width
|
||||||
|
}
|
||||||
|
if height != "-1" {
|
||||||
|
args.Codecs[i] += " -height " + height
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ func (a *Args) String() string {
|
|||||||
b.WriteString(codec)
|
b.WriteString(codec)
|
||||||
}
|
}
|
||||||
|
|
||||||
if a.Filters != nil {
|
if len(a.Filters) > 0 {
|
||||||
for i, filter := range a.Filters {
|
for i, filter := range a.Filters {
|
||||||
if i == 0 {
|
if i == 0 {
|
||||||
b.WriteString(` -vf "`)
|
b.WriteString(` -vf "`)
|
||||||
|
|||||||
Reference in New Issue
Block a user