Hi,

I regularly cut videos using ffmpeg, where I have two inputs: One
camera recording FHD@50 and one screen recording recording some format
slightly smaller than FHD and with a variable frame rate, averaging to
something between 20 and 25 fps usually.

I then take a black FHD canvas at 50 fps, overlay the screen recording
on top, aligned to the left side, so there is a small black border on
the right. The camera should sometimes be fullscreen and sometimes be
in the top right corner, so I use a commands file that sends the
correct values for the scale filter, and overlay that on top of the
previous overlays.

My filter chain would look something like this:

[0]fps=50,sendcmd=f=camera.cmd,scale@cam[camera];

color=c=black:size=1920x1080,fps=50[background];
[1]fps=50,setpts=PTS+$screen_offset/TB[screen_tmp];
[background][screen_tmp]overlay=x=0:y=0:shortest=1[screen];

[screen][camera]overlay=x=W-w:y=0:repeatlast=0[video]

I even insert fps=50 commands everywhere to assure that ffmpeg doesn't
default to 25fps which has happened to me before.

Unfortunately, this command regularly gets killed by my kernel due to
excessive RAM usage. It usually happens a few minutes after the screen
recording starts.

When I preprocess the screen recording using -vf fps=50 filter, i.e.
transform it into a fixed frame rate video, before passing it to the
above filters, everything works as expected.

Am I doing something wrong? Is it possible to avoid re-encoding the
input before doing the actual encoding, without getting my kernel
upset?

Thanks,
Dominic
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to