GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Netflix/photon: Photon is a Java implementation of the Interoperable Master Format (IMF) standard. IMF is a SMPTE standard whose core constraints are defined in the specification st2067-2:2013

BranchesTags
Open more actions menu

Latest commit

 

History

884 Commits
884 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
codequality
codequality
 
 
gradle/wrapper
gradle/wrapper
 
 
src
src
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
NOTICE.md
NOTICE.md
 
 
OSSMETADATA
OSSMETADATA
 
 
README.md
README.md
 
 
bootstrap.sh
bootstrap.sh
 
 
build.gradle
build.gradle
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
settings.gradle
settings.gradle
 
 

Repository files navigation

Photon

Photon is a Java implementation of the Interoperable Master Format (IMF) standard. Photon offers tools for parsing, interpreting and validating constituent files that make an Interoperable Master Package (IMP). These include:

  • AssetMap (ST 429-9)
  • PackingList (ST 429-8)
  • Composition Playlist (ST 2067-3)
  • IMF Track Files (ST 2067-5)

Photon parses and reads IMF track files and serializes the metadata into the IMF Composition Playlist structure. Currently, Photon provides support for

  • IMF Application #2E (ST 2067-21)
  • Application #5 ACES (ST 2067-50)
  • Immersive Audio Bitstream (IAB) Level 0 Plug-in (ST 2067-201).
  • Isochronous Stream of XML Documents (ISXD) Plug-in (ST 2067-202).
  • Audio with Frame-based S-ADM Metadata Plug-in (ST 2067-203).

The goal of the Photon is to provide a simple standardized interface to completely validate an IMP.

Build

JDK requirements

Photon can be built using JDK-11.

Gradle

Photon can be built very easily by using the included Gradle wrapper. Having downloaded the sources, simply invoke the following commands inside the folder containing the sources:

Linux/macOS:

$ ./gradlew clean
$ ./gradlew build
$ ./gradlew getDependencies

Windows:

$ gradlew.bat clean
$ gradlew.bat build
$ gradlew.bat getDependencies

Note

getDependencies downloads all dependencies into the ./build/libs directory.

Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org.

Change history and version numbers are available at CHANGELOG.md.

Example for Maven:

<dependency>
    <groupId>com.netflix.photon</groupId>
    <artifactId>Photon</artifactId>
    <version>5.0.0</version>
</dependency>

and for Ivy:

<dependency org="com.netflix.photon" name="Photon" rev="5.0.0" />

Documentation

Sample Applications

Multiple sample applications have been provided with this project (e.g., com.netflix.imflibrary.app.IMFTrackFileReader). Having obtained the dependencies, you can run an application as follows:

Linux/macOS:

java -cp "./build/libs/*:" <fully qualified class name> <arguments>

Example:

// Analyze an IMF Delivery locally
java -cp "./build/libs/*:" com.netflix.imflibrary.app.IMPAnalyzer local_folder_path

// Analyze an IMF Delivery in a S3 bucket
java -cp "./build/libs/*:" com.netflix.imflibrary.app.IMPAnalyzer s3://path/to/IMFDelivery/

// Analyze an individual IMF asset (e.g. AssetMap, PKL, CPL, MXF Track File)
java -cp "./build/libs/*:" com.netflix.imflibrary.app.IMPAnalyzer local_file_path

Windows:

java -cp build\libs\*; <fully qualified class name> <arguments>

Example:

// Analyze an IMF Delivery locally
java -cp build\libs\*; com.netflix.imflibrary.app.IMPAnalyzer IMP_folder_path

S3 Access

Photon supports S3 URIs through aws-java-nio-spi-for-s3. No Photon-specific setup is needed, instead the S3 CLI config and credentials are used directly (see here for instructions).

Example (Linux/macOS):

// Analyze an IMF Delivery in a S3 bucket
java -cp "./build/libs/*:" com.netflix.imflibrary.app.IMPAnalyzer s3://imf-plugfest-imf-plugfest/plugfest_2024_11/source_test_vectors/From_Colorfront/HTJ2K/plugest_FTR_C_EN-XX_US-NR_51_UHD_20241105_OV/

API and Developer Documentation

API documentation is available via Javadoc.

More information is available in the Wiki.

About

Photon is a Java implementation of the Interoperable Master Format (IMF) standard. IMF is a SMPTE standard whose core constraints are defined in the specification st2067-2:2013

Resources

Readme
Apache-2.0 license

Contributing

Contributing
Activity
Custom properties

Stars

258 stars

Watchers

391 watching

Forks

82 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.