- Notifications
You must be signed in to change notification settings - Fork78
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
License
Netflix/photon
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Photon is a Java implementation of theInteroperable 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.
Photon can be built using JDK-11.
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 getDependenciesWindows:
$ gradlew.bat clean$ gradlew.bat build$ gradlew.bat getDependenciesNote
getDependencies downloads all dependencies into the./build/libs directory.
Binaries and dependency information for Maven, Ivy, Gradle and others can be found athttp://search.maven.org.
Change history and version numbers are available atCHANGELOG.md.
Example for Maven:
<dependency> <groupId>com.netflix.photon</groupId> <artifactId>Photon</artifactId> <version>5.0.0</version></dependency>
and for Ivy:
<dependencyorg="com.netflix.photon"name="Photon"rev="5.0.0" />
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:
java -cp "./build/libs/*:" <fully qualified class name> <arguments>Example:
// Analyze an IMF Delivery locallyjava -cp "./build/libs/*:" com.netflix.imflibrary.app.IMPAnalyzer local_folder_path// Analyze an IMF Delivery in a S3 bucketjava -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_pathjava -cp build\libs\*; <fully qualified class name> <arguments>Example:
// Analyze an IMF Delivery locallyjava -cp build\libs\*; com.netflix.imflibrary.app.IMPAnalyzer IMP_folder_pathPhoton supports S3 URIs throughaws-java-nio-spi-for-s3. No Photon-specific setup is needed, instead the S3 CLI config and credentials are used directly (seehere for instructions).
Example (Linux/macOS):
// Analyze an IMF Delivery in a S3 bucketjava -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 documentation is available viaJavadoc.
More information is available in theWiki.
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
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.