This path fixing scale2ref filter if reference frame is HW frame.Command for
add watermark (resize it based on the main/reference video size:
[watermark][scaled]scale2ref=oh*mdar:ih*0.5[watermark2][scaled2] ) on video in
case of HW pipeline:>./ffmpeg -init_hw_device cuda=cuda -hwaccel cuda
-hwaccel_output_format cuda -filter_hw_device cuda -i input -t 60
-filter_complex
scale_npp=1920:1080:format=yuv420p[scaled],movie=/media/converter/watermark/watermark_ai.png,format=yuva420p[watermark],[watermark][scaled]scale2ref=oh*mdar:ih*0.5[watermark2][scaled2],[watermark2]hwupload[watermark_hw],[scaled2][watermark_hw]overlay_cuda=x=0:y=0
-c:v h264_nvenc -an -y out.mp4
Command for add watermark on video in case of SW pipeline:>./ffmpeg -i
input.mp4 -t 60 -filter_complex
scale=1920:1080,format=yuv420p[scaled],movie=/media/converter/watermark/watermark_ai.png,format=yuva420p[watermark],[watermark][scaled]scale2ref=oh*mdar:ih*0.5[watermark2][scaled2],[scaled2][watermark2]overlay=x=0:y=0
-c:v h264 -an -y out.mp4
Signed-off-by: alex_qt <[email protected]>
---
libavfilter/vf_scale.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index 58eee96744..6b587e8cd4 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -609,7 +609,9 @@ static int config_props_ref(AVFilterLink *outlink)
outlink->sample_aspect_ratio = inlink->sample_aspect_ratio;
outlink->time_base = inlink->time_base;
outlink->frame_rate = inlink->frame_rate;
-
+ if (inlink->hw_frames_ctx) {
+ outlink->hw_frames_ctx = av_buffer_ref(inlink->hw_frames_ctx);
+ }
return 0;
}
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".