Skip to contents

Join clips end to end for many outputs from a single jobs tibble. This is the batch (table-driven) form of concatenate_videos(), for when you have more than one concatenation to produce. Unlike the single-input batch functions, each row's inputs are many. So jobs carries an inputs list-column (each cell a character vector of source paths) plus an output column. This is a thin wrapper over ffm_batch: one reproducible concat-demuxer command per row, sharing the copy + map-0 pipeline with concatenate_videos().

Usage

concatenate_videos_batch(jobs, run = TRUE, parallel = FALSE, ...)

Arguments

jobs

A data frame with one row per output and (at least) an inputs list-column and an output column (destination path). Each inputs cell is a character vector of the source paths to join, in order. An output column is required; this function derives no destination. Two rows given the same output path are refused before any row runs. Any other columns are ignored.

run

A logical: run each command through FFmpeg (TRUE, default) or only compile them for inspection (FALSE).

parallel

A logical: process the jobs in parallel with furrr (TRUE) or one at a time (FALSE, default). See ffm_batch for the future plan requirement.

...

Additional arguments forwarded to ffm_batch (e.g. verify, manifest, progress).

Value

The jobs tibble with an added command column. When run = TRUE, it also has a success column, plus verified or a provenance manifest, each when requested through .... See ffm_batch.

Examples

video <- system.file("extdata", "sample.mp4", package = "tidymedia")
jobs <- tibble::tibble(inputs = list(c(video, video)), output = "joined.mp4")
concatenate_videos_batch(jobs, run = FALSE)
#> # A tibble: 1 × 3
#>   inputs    output     command                                                  
#>   <list>    <chr>      <chr>                                                    
#> 1 <chr [2]> joined.mp4 "-y -f concat -safe 0 -i \"/tmp/RtmpTo1HDT/ffm-concat1ee…