Linkyu
Linkyu

Reputation: 207

How to use input parameters in filter_() in ffmpeg-python?

I am using the ffmpeg-python wrapper.

I want to use the crop filter to extract a cropped section of the video file; I want the section's size to be half the dimensions of the input.

According to ffmpeg's documentation, I can use the input parameters in_w and in_h like so:

crop=1/2*in_w:1/2*in_h (or crop=w=1/2*in_w:h=1/2*in_h with named parameters)

However, I struggle to find how to use them in ffmpeg-python. I figured I could pass them as standard arguments like so: filter_('crop', '1/2*in_w:1/2*in_h') but I seem to misunderstand how direct arguments work here because this does not work.

Obviously, I can't use keyword arguments either like so:

filter_('crop', w=1/2*in_w, h=1/2*in_h)

because they're interpreted as undefined names.

Upvotes: 1

Views: 3719

Answers (1)

Linkyu
Linkyu

Reputation: 207

I was actually very close. While testing more possibilities, I found out that all I needed to do was to send the keywords as strings:

(ffmpeg
 .input("input.mp4")
 .filter_('crop', w='1/2*in_w', h='1/2*in_h')
 .output("output.mp4")
 .run()
 )

Upvotes: 5

Related Questions