Make the video's frames smaller by cropping them.
Arguments
- object
An FFmpeg pipeline (
ffm) object created byffm_files().- width
The width of the output video, in pixels. Give a positive double or a string, such as an FFmpeg expression.
- height
The height of the output video, in pixels. Give a positive double or a string, such as an FFmpeg expression.
- x
The horizontal position of the left edge of the output video, in pixels of the input video. Give a double of zero or more, or a string, such as an FFmpeg expression. The default is
"(in_w-out_w)/2".- y
The vertical position of the top edge of the output video, in pixels of the input video. Give a double of zero or more, or a string, such as an FFmpeg expression. The default is
"(in_h-out_h)/2".
Details
Each size and position argument takes one double (an R number such as
160) or one string. An integer such as 160L is refused, and so
is NA. Any other string is not checked, and it goes into the FFmpeg
command as written, so it can hold an FFmpeg expression.
See also
ffm_scale() to resize instead of crop. crop_video() and
format_for_web() are the task functions built on ffm_crop().
Other pipeline functions:
ffm_batch(),
ffm_codec(),
ffm_compile(),
ffm_concat(),
ffm_copy(),
ffm_drawbox(),
ffm_drop(),
ffm_files(),
ffm_fps(),
ffm_hstack(),
ffm_jobs(),
ffm_loudnorm(),
ffm_map(),
ffm_output_options(),
ffm_overlay(),
ffm_pixel_format(),
ffm_run(),
ffm_scale(),
ffm_seek(),
ffm_trim(),
ffm_vstack(),
print.tidymedia_ffm()
Examples
video <- system.file("extdata", "sample.mp4", package = "tidymedia")
# Crop to a centered 160x120 region
ffm_files(video, "output.mp4") |>
ffm_crop(width = 160, height = 120) |>
ffm_compile()
#> [1] "-y -i \"/home/runner/work/_temp/Library/tidymedia/extdata/sample.mp4\" -vf \"crop=w=160:h=120:x=(in_w-out_w)/2:y=(in_h-out_h)/2\" \"output.mp4\""