@@ -251,15 +251,33 @@ func _TestParseArgsHwV4l2m2m(t *testing.T) {
251
251
}
252
252
253
253
func TestParseArgsHwRKMPP (t * testing.T ) {
254
- // [HTTP-MJPEG] video will be transcoded to H264
255
- args := parseArgs ("http://example.com#video=h264#hardware=rkmpp" )
256
- 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 -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}` , args .String ())
257
-
258
- args = parseArgs ("http://example.com#video=h264#rotate=180#hardware=rkmpp" )
259
- 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 ())
260
-
261
- args = parseArgs ("http://example.com#video=h264#height=320#hardware=rkmpp" )
262
- 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 ())
254
+ tests := []struct {
255
+ name string
256
+ source string
257
+ expect string
258
+ }{
259
+ {
260
+ name : "[FILE] transcoding to H264" ,
261
+ source : "bbb.mp4#video=h264#hardware=rkmpp" ,
262
+ expect : `ffmpeg -hide_banner -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -re -i bbb.mp4 -c:v h264_rkmpp -g 50 -bf 0 -profile:v high -level:v 4.1 -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}` ,
263
+ },
264
+ {
265
+ name : "[FILE] transcoding with rotation" ,
266
+ source : "bbb.mp4#video=h264#rotate=180#hardware=rkmpp" ,
267
+ expect : `ffmpeg -hide_banner -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -re -i bbb.mp4 -c:v h264_rkmpp -g 50 -bf 0 -profile:v high -level:v 4.1 -an -vf "format=drm_prime|nv12,hwupload,vpp_rkrga=transpose=4" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}` ,
268
+ },
269
+ {
270
+ name : "[FILE] transcoding with scaling" ,
271
+ source : "bbb.mp4#video=h264#height=320#hardware=rkmpp" ,
272
+ expect : `ffmpeg -hide_banner -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -re -i bbb.mp4 -c:v h264_rkmpp -g 50 -bf 0 -profile:v high -level:v 4.1 -an -vf "format=drm_prime|nv12,hwupload,scale_rkrga=-1:320:force_original_aspect_ratio=0" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}` ,
273
+ },
274
+ }
275
+ for _ , test := range tests {
276
+ t .Run (test .name , func (t * testing.T ) {
277
+ args := parseArgs (test .source )
278
+ require .Equal (t , test .expect , args .String ())
279
+ })
280
+ }
263
281
}
264
282
265
283
func _TestParseArgsHwCuda (t * testing.T ) {
0 commit comments