[FFmpeg-user] -vf split + overlay uses all RAM
Nicolas George
nicolas.george at normalesup.org
Sat Dec 31 20:11:32 CET 2011
Le primidi 11 nivôse, an CCXX, Mark Himsley a écrit :
> Running this command uses all RAM (and lots of swap) and outputs no
> frames to the output file:
>
> ffmpeg -loglevel verbose -i input.mov -vf
> "split[one][two];[one][two]overlay=0:0" -aspect 16:9 -vcodec dvvideo
> -acodec pcm_s16le -ac 2 -y output.mov
>
> I know it's a crazy command, but I was trying to overlay a smaller
> version of a video over its self, like this:
>
> ./ffmpeg -loglevel verbose -i input.mov -vf
> "split[one][two];[two]scale=200:200[three];[one][three]overlay=0:0[out]"
> -aspect 16:9 -vcodec dvvideo -acodec pcm_s16le -ac 2 -y output.mov
>
> That also uses all RAM and swap and doesn't output any frames, so I
> tried the simpler version.
>
> Can anyone else confirm this?
I can confirm, and I can suggest a workaroun: insert a FIFO before the first
input of your overlay filter:
[one] fifo, [three]overlay=0:0[out]
What happens, I believe, is that when the filter gets a frame for the
background, it requests a frame for the overlay, not knowing that it will
get one immediately. As a result, the split filter outputs a frame for the
overlay as requested, but also for the background, and that recurse.
There is clearly room for improvement here.
Regards,
--
Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111231/84f5962c/attachment.asc>
More information about the ffmpeg-user
mailing list