The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
A pure-R OpenTimelineIO
(OTIO) document model. Constructors for the OTIO object model
(Timeline, Track, Clip,
Gap, media references, RationalTime,
TimeRange), functional builders that return new objects,
the edit algorithms (overwrite, insert,
trim, slice, slip,
slide, ripple, roll,
fill, remove), schema upgrade/downgrade hooks,
and readers and writers for canonical .otio JSON through
jsonlite. Directory bundles (content.otio +
media/) are covered by read_otiod() /
write_otiod().
No compiled code. The only hard dependency is jsonlite.
RcppOTIO wraps the OTIO C++ library itself (Rcpp over libopentimelineio). rotio is the lightweight sibling: same object model and naming, implemented entirely in R.
rotio lists RcppOTIO in Suggests as a validation oracle: the parity tests serialize rotio’s output through real libopentimelineio and check the JSON and edit-algorithm behavior match the reference implementation. The oracle is optional. Without RcppOTIO installed, the full test suite still passes and the parity tests skip, so rotio runs anywhere R runs, no C++ toolchain needed.
Parity testing these packages against libopentimelineio is what surfaced OpenTimelineIO#2025, an upstream edit-algorithm fix.
remotes::install_github("cornball-ai/rotio")The optional oracle (needs the OpenTimelineIO C++ library >= 0.18 and Imath headers installed):
install.packages("RcppOTIO", repos = c(
"https://cornball-ai.github.io/drat",
"https://cloud.r-project.org"
))library(rotio)
ref <- ExternalReference("shot.mov")
clip <- Clip("shot", ref,
source_range = TimeRange(RationalTime(0, 24), RationalTime(48, 24)))
trk <- add_child(Track("V1", kind = "Video"), clip)
tl <- add_track(Timeline("my timeline"), trk)
find_clips(tl) # list of clips, recursively
js <- to_json_string(tl) # canonical OTIO JSON
tl2 <- from_json_string(js)With RcppOTIO installed, validate_with_RcppOTIO(tl)
round-trips the JSON through libopentimelineio to confirm real OTIO
accepts it.
Apache License 2.0, matching upstream OpenTimelineIO.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.