Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftAVB

Swift library for reading and writing Avid Media Composer .avb bins as a domain dictionary of chunks (not an in-memory typed object tree).

License: MIT — see LICENSE.
Repo: github.com/DJFio/swiftAVB

Requirements

  • macOS 11+
  • Swift 5.5+

Install (Swift Package Manager)

dependencies: [
    .package(url: "https://github.com/DJFio/swiftAVB.git", from: "1.0.0"),
],
targets: [
    .target(name: "YourTarget", dependencies: ["SwiftAVB"]),
]

Local path:

.package(path: "../swiftAVB")

Quick start

import SwiftAVB

let doc = try SwiftAVB.open(url: URL(fileURLWithPath: "MyBin.avb"))

// VersusSync-style flow (no OTIO roundtrip):
let compositions = AVBVersusSync.listCompositions(doc: doc)
let cmpo = compositions[0].index
let tracks = try AVBVersusSync.listTracks(doc: doc, compositionIndex: cmpo)
let subCaps = try AVBVersusSync.subCapInfo(doc: doc, compositionIndex: cmpo)
let timeline = try AVBVersusSync.load(
    doc: doc,
    compositionIndex: cmpo,
    options: .init(selectedTrackIndex: tracks.first?.index ?? 0, includeSubCapAsMarkers: subCaps.hasSubCaps)
)
print(timeline.track.segments.count, timeline.track.markers.count)

// Optional: same data as VersusSync .otio
let otio = try AVBVersusSync.exportOTIO(doc: doc, compositionIndex: cmpo)

Documentation

Companion app

SwiftAVBWalker — macOS bin inspector UI (download + notes).

Third-party acknowledgements

Codec layouts and format knowledge draw on pyavb (MIT, Mark Reid) and AVB-analyze (MIT). OMF/AAF sample files were used for research only and are not redistributed.

About

Swift library for reading and writing Avid Media Composer .avb bins as a domain dictionary of chunks

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages