FFMPEG a few months ago launched a new version with the new filter “overlay_cuda”, this filter makes the same as the “overlay” but using an Nvidia card for applying it.
I found on the FFMPEG website description of the filter, but no examples of how to use it. The only examples I found are from the developer commits but are to put a video or a photo over another video.
I know that the normal overlay filter can achieve this using a nullsrc image with the twice width but now I don’t know how to it with this filter.
Commit description: FFMPEG Commit discussion
Documentation webpage: Overlay_cuda filter FFMPEG docs
I hope you can help me.
Update:
I made this FFmpeg order that:
- Input each video.
- The first video creates padding to the right and then is uploaded to the card’s memory.
- With overlay Cuda, the other video puts on the right of the original video.
ffmpeg -y -loglevel info \
-i $video_1 \
-hwaccel cuda -hwaccel_output_format cuda -i $video_2 \
-filter_complex \
" \
[0:v]pad=w=2*iw:h=ih:x=0:y=0,hwupload_cuda[base];
[base][1:v]overlay_cuda=x=800:y=0" \
-an -c:v h264_nvenc overlay_test.mp4
But I get this error message:
[overlay_cuda @ 0x55fdec4b2ec0] Can't overlay nv12 on yuv420p
[Parsed_overlay_cuda_2 @ 0x55fdec4b2d80] Failed to configure output pad on Parsed_overlay_cuda_2
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:0
I have issues with the pixel formats, I hope you can help me.