Discussion:
[FFmpeg-user] avfilter: hwoverlay
msanders
2018-11-26 09:46:53 UTC
Permalink
Hi,

As now we have many filters compatible with the GPU, and in particular “scale” filters. So I think we need a filter like “hwoverlay” or “overlay_cuda/_qsv/etc.”.

With this kind of filter we can do a PiP using only a GPU pipeline:

- GPU decoder --> spplit (hw) --> hwscale --> hwoverlay --> GPU encoder

In fact, I feel it’s not too complex to do.

What you think?
M. Sanders
_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-***@ffmpeg.org with subject
Paul B Mahol
2018-11-26 12:01:03 UTC
Permalink
Post by msanders
Hi,
As now we have many filters compatible with the GPU, and in particular
“scale” filters. So I think we need a filter like “hwoverlay” or
“overlay_cuda/_qsv/etc.”.
- GPU decoder --> spplit (hw) --> hwscale --> hwoverlay --> GPU encoder
In fact, I feel it’s not too complex to do.
What you think?
Unless its sponsored, I'm not interested.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-***@ffmpeg.org with subject "un
msanders
2018-11-26 12:21:04 UTC
Permalink
Sent with ProtonMail Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
Post by Paul B Mahol
Post by msanders
Hi,
As now we have many filters compatible with the GPU, and in particular
“scale” filters. So I think we need a filter like “hwoverlay” or
“overlay_cuda/_qsv/etc.”.
- GPU decoder --> spplit (hw) --> hwscale --> hwoverlay --> GPU encoder
In fact, I feel it’s not too complex to do.
What you think?
Unless its sponsored, I'm not interested.
I'm a volunteer, just like anyone else.
I can't sponsor anything. It's just an idea.

_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-***@ffmpeg.org with subject "u
Micael Silva
2018-11-26 13:00:47 UTC
Permalink
Post by msanders
Hi,
As now we have many filters compatible with the GPU, and in particular
“scale” filters. So I think we need a filter like “hwoverlay” or
“overlay_cuda/_qsv/etc.”.
- GPU decoder --> spplit (hw) --> hwscale --> hwoverlay --> GPU encoder
In fact, I feel it’s not too complex to do.
What you think?
M. Sanders
It's a good idea, although working with hardware accelerators it's never so
straightforward. It depends how that API is construct, what methods are
allowed, and many bugs and crashes surface. Hardware processing is less
flexible in many aspects.

Maybe possible, but I think that requiring more specialized people may take
more time to realize
_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-***@ffmpeg.org with subject "unsubsc
msanders
2018-11-26 13:29:46 UTC
Permalink
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
Post by Micael Silva
Post by msanders
Hi,
As now we have many filters compatible with the GPU, and in particular
“scale” filters. So I think we need a filter like “hwoverlay” or
“overlay_cuda/_qsv/etc.”.
- GPU decoder --> spplit (hw) --> hwscale --> hwoverlay --> GPU encoder
In fact, I feel it’s not too complex to do.
What you think?
M. Sanders
It's a good idea, although working with hardware accelerators it's never so
straightforward. It depends how that API is construct, what methods are
allowed, and many bugs and crashes surface. Hardware processing is less
flexible in many aspects.
Maybe possible, but I think that requiring more specialized people may take
more time to realize
Hi,

The complexity varies.
- If the implementation is "generic", for example using some function like "av_frame_clone()" that works with RAM and GPU frames, then it will be more complex... at start. In this case new functions "av_frame_clip()" and "av_frame_overlay()" should be required.
- And if the implementation is "particular", for example implementing "overlay_cuda|_qsv", then it will be more simple.

In fact, using the code of "vf_scale_cuda.c" can be easy to translate it to a "vf_overlay_cuda.c". The reason it's because the GPU copy functions are already implemented. And the algorithm is summarized in: copy the complete frame and then overwrite with the small frame. So, only "copy GPU" functions are required.

Anyone interested?

_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-***@ffmpeg.org with
Paul B Mahol
2018-11-26 14:10:40 UTC
Permalink
Post by msanders
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, 26 de November de 2018 14:00, Micael Silva
Post by Micael Silva
Post by msanders
Hi,
As now we have many filters compatible with the GPU, and in particular
“scale” filters. So I think we need a filter like “hwoverlay” or
“overlay_cuda/_qsv/etc.”.
- GPU decoder --> spplit (hw) --> hwscale --> hwoverlay --> GPU encoder
In fact, I feel it’s not too complex to do.
What you think?
M. Sanders
It's a good idea, although working with hardware accelerators it's never so
straightforward. It depends how that API is construct, what methods are
allowed, and many bugs and crashes surface. Hardware processing is less
flexible in many aspects.
Maybe possible, but I think that requiring more specialized people may take
more time to realize
Hi,
The complexity varies.
- If the implementation is "generic", for example using some function like
"av_frame_clone()" that works with RAM and GPU frames, then it will be more
complex... at start. In this case new functions "av_frame_clip()" and
"av_frame_overlay()" should be required.
- And if the implementation is "particular", for example implementing
"overlay_cuda|_qsv", then it will be more simple.
In fact, using the code of "vf_scale_cuda.c" can be easy to translate it to
a "vf_overlay_cuda.c". The reason it's because the GPU copy functions are
already implemented. And the algorithm is summarized in: copy the complete
frame and then overwrite with the small frame. So, only "copy GPU" functions
are required.
Anyone interested?
Nope.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-req
msanders
2018-11-27 08:42:54 UTC
Permalink
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
Post by msanders
Hi,
The complexity varies.
- And if the implementation is "particular", for example implementing
"overlay_cuda|_qsv", then it will be more simple.
At time, "overlay_opencl" and "overlay_qsv" already exist. So my suggestion really makes sense.

I'll try implement the "overlay_cuda" based on "overlay_qsv".

Regards.

_______________________________________________
ffmpeg-user mailing list
ffmpeg-***@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user

Loading...