Giter Site home page Giter Site logo

imftool / imftool Goto Github PK

View Code? Open in Web Editor NEW
137.0 44.0 15.0 391.64 MB

A tool for editing IMF CPLs and creating new versions of an existing IMF (Interoperable Master Format) package

License: GNU General Public License v3.0

CMake 0.29% C++ 99.69% C 0.02%
imf smpte st2067

imftool's Introduction

IMFTool

A tool for editing IMF CPLs and creating new versions of an existing IMF package

Pre-compiled versions

The latest binary installers for macOS and Windows are available at Releases

What is IMF Tool

IMF Tool supports browsing and limited editing of IMF [1] packages (IMPs). In particular, it supports the addition and deletion of audio tracks and subtitle tracks (versioning). Introductory videos are available on YouTube [2], [3].

Workflows and Features:

  • Open an IMP, visualize the timeline of the CPL(s) included in the IMP
  • Create a new IMP, based on importing existing image track files
  • Supports App#2E JPEG2000 and App#5 ACES
  • Experimental supoprt of HTJ2K in App 2E and App4 DCDM
  • Track file support includes IAB (SMPTE ST 2067-201) and ISXD (SMPTE RDD 47)
  • Add Sidecar Assets to an IMP ("Add Asset" --> Add Sidecar Assets)
  • Create, view and edit Sidecar Composition Maps (SCMs)
  • Add a Photon QC report as sidecar file (hint: export the sidecar QC report as a Partial IMP, this leaves the Original IMP unmodified!)
  • Load ancestor Original Versions of Supplemental IMPs for preview and versioning
  • Create Photon[4] QC report
  • Edit CPL metadata
  • Add new virtual tracks (limited to audio, subtitles and markers)
  • Import and wrap audio and timed text resources
  • Delete virtual tracks
  • Add new segments
  • Set edit points and markers
  • Export as Full or Partial IMP
  • App#5 ACES support includes ACES preview and Target Frame preview and export
  • Decoding and rendering of IMSC1 text profile subtitles in a separate window. (TTML tab, limited IMSC feature set)
  • Overlay of IMSC1 image profile subtitles
  • Ingest of IMF 1.0 (PKL ST 429-8 and CPL ST 2067-3:2013) and IMF 1.1 (PKL ST 2067-2:2016 and CPL ST 2067-3:2016)
  • Outgest will be IMF 2020 only
  • Editing of the ContentVersionList element
  • Edit Marker Annotations

CREDITS

The development of this tool has kindly been sponsored by Netflix Inc. The App#5 extensions were supported by the Academy of Motion Picture Arts and Sciences, Sony Pictures, Warner Bros., Universal Studios and 20th Century Fox

Binary installers

Please visit Releases to download the latest binary installers.

For being notified about new releases, please "Watch" IMF Tool (on the top of this page).

Building

IMF Tool is multi-platform and has been successfully built under macOS version 10.12 or higher, Windows 10 and Linux 64 bit. The build system is based on CMake. Please use CMake to create make files and project files for eclipse or Visual Studio. Installation instructions including CMake screenshots are provided as pdf file here. Prerequisites:

DISCLAIMER

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

[1] IMF: Interoperable Master Format. For an introduction see here: http://techblog.netflix.com/2016/03/imf-prescription-for-versionitis.html

[2] IMF-Tool introductory video: https://www.youtube.com/watch?v=Zi3p8oElPM8

[3] IMF-Tool introductory video Part 2: https://www.youtube.com/watch?v=k6OIx7WfF8s

[4] Photon IMF QC tool https://github.com/Netflix/photon

imftool's People

Contributors

imftool avatar marcantoine-arnaud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imftool's Issues

cc:Main[Image or Audio]Sequence error

IMF Tool 1.8.360 on PC
When CPLs are checked using https://apps.sandflow.com/imfcplV/ an error is displayed noting:
"cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'cc:MainImageSequence'."
and/or
"cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'cc:MainAudioSequence'."
Compared to other CPLs, on the surface level it appears EditRate is missing.

Cater for superimposed Markers in Marker Track Tooltip

If Markers are superimposed (use case: FFOC and FFTC), the tooltip only shows one of them and you have to drag it out of the way to see those underneath. The tooltip could list all the Markers on that frame. Many thanks.

Overwriting CPL can lead to broken package without warning

I appreciate the warning when you choose to overwrite a CPL. However, there is an additional problem: doing this breaks the package due to its hash/size entries in the PKL changing. Although the write buttons are enabled by overwriting a CPL, a warning about unsaved changes is not given if you quit the application, leaving you with a broken package.

Issues with Edit Resource entry fields

This is the dialogue that appears when you Add Asset -> Wrap PCM Essence.

  • The five free text fields should select the existing text when you click in them, so that it is removed as soon as you type anything
  • The Language Tag field is greyed out, although you can edit it
  • The other fields only accept [a-zA-Z0-9]. This conflicts with the default values in two of them because they contain a space. They cannot be edited unless you delete the space
  • Maximum number of characters is small. As far as I know there aren't limits on the lengths of these fields (certainly not in ST 377-4)

Again, this is in MacOS 10.14.

As an aside, you might consider changing default values to those suggested by the IMFUG.

Marker tracks do not extend

When extending a segment or adding a new segment, an existing marker track does not get extended.
Workaround: Delete marker track and re-insert. You'll also have to re-insert all markers.

Some user feedback regarding the IMF tool and quality of life improvements

Hey hello, first of all thanks for developing this application.

At my work we are currently making lots of IMF packages for clients and the tool is really awesome. But after working the past 1,5 month intensively with the tool some impractical things really stick out so i just wanted to give some feedback regarding those.

  • When opening a IMF package or import a subtitle asset the window that unfolds does not show the normal file explorer choices, IMF is big so all the content is located on network attached storage but the attached network drives and locations are completely absent from this browser window in the IMF tool.

  • We often end with a package that has multiple CPL files, think multi region versions and added trailers/clips. When you have created those multiple CPL files sometimes you want to quickly copy paste for example the ID or labeltext, but if you enter it for a CPL you first have to save, then go to the next, paste and save and so on. Would be lovely if we could switch in the same package between CPL without the need to save first before going to the next CPL because currently you just lose the data.

  • Would be nice to be able to remove a language from the annotation without needing to delete the whole annotation list.

  • I like going through settings and preferences, in the Tool there is the menu option Tools -> preferences <- greyed out, noooo the torture.

  • As far away goals it would be nice if the Tool could support some more playback/player functionality so you can do some simple QC of your work before compiling. Listen to audio tracks for example to make sure the correct language is used.

  • Some added functionality to directly import MXF OP1A or Atom to IMF tool (needing rewrap) or something. (like is possible PCM import)

Wel thanks for the read and hope the feedback can contribute to the development of the tool.

CPL "Issuer" field is copied into "Content Originator" field

When you create a CPL, the value you enter in the dialogue for Issuer also appears in the Content Originator details and in the CPL. The value you enter for Content Originator appears to be lost.

Workaround: correct the field in the Details tab and overwrite the CPL.

Marker type list order sub-optimal

A very minor suggestion this! I see that the long list of marker types brought up by Add Marker is in the order given in Table 21 of ST 2067-3:2020, i.e. with the two newer groups at the bottom. I don't think the average user will know or care about the history of the markers, especially as there is no demarcation between the groups. So, maybe it would just be better to list them all in alphabetical order?

Another thought is that as they are (all?) either First Frame or Last Frame of something, you could split them into two groups and select by adding another level to the menu tree.

Cannot add 48000 wav asset

I cannot add a 48kHz wav as asset - desfpitethe fact it has 48kHz. Error keeps coming up, saying the sample rate is not supported...
image
image

Marker can be beyond end of segment

Thank you for IMF Tool. So far I'm finding it comprehensive, well-designed and reliable.

One thing I've discovered is that you can put a marker right at the end of a segment, or drag it there, which (I think!) actually corresponds to the first frame beyond the end of the segment. The CPL shows its Offset as being the same as the SourceDuration and when you re-open the IMP, it does not reappear on the timeline. Ideally the marker would be displayed as spanning the duration of a frame, rather than as infinitely narrow and at the start of a frame. I think this would clear up confusion about what actually refers to. But a quick fix would be to prevent it being put right at the end.

OPL support

I'm looking to create IMF packages from essences files and IMFTool seems to work fine for this, but it seems to not create OPL file and I didn't find any occurrence of OPL in the documentation.

As there is some OPL occurrence in the source code, I'm wondering if IMFTool can create them (and I didn't find how) or if I have to write my own tool for this ?

Best regards

Old PKL is not retained when package is written

The manual says "A new PKL will be created and the former PKL will be kept (but not be referenced any more)".

I prefer that the old PKL is not retained, but that conflicts with the manual.

Clicking QC Returns A Java Error

Screen Shot 2019-03-31 at 2 32 58 PM

I know photon is another library but it is built, linked and invoked from IMF-Tool -
It fails every time.

Version: 1.5.285
Java: java version "12" 2019-03-19
Java(TM) SE Runtime Environment (build 12+33)
Java HotSpot(TM) 64-Bit Server VM (build 12+33, mixed mode, sharing)
Mac Mojave 10.14

Cool Tool! Thanks!!!

TTML color coding

Please check the HTML rendering for color from ttml.

The following HTML (from imftool):

<p begin="00:01:25.360" end="00:01:27.360" region="region_1" style="color:#FFFFFFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;" xml:id="8">
<span style="color:#FF0000FF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;">Red</span>
<span style="color:#00FF00FF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"> Green</span>
<span style="color:#FFFF00FF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"> Yellow</span>
<span style="color:#FF00FFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"> Magenta</span>
<span style="color:#00FFFFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"> Cyan</span>
<span style="color:#0000FFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"> Blue</span>
<br style="color:#0000FFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"/>
<span style="color:#FFFFFFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;">WhiteWithCode</span>
<br style="color:#FFFFFFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"/>
<span style="color:#FFFFFFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;">RedBackground</span>
<span style="color:#FFFFFFFF;font-family:proportionalSansSerif;font-size:1.5c;font-style:normal;line-height:125%;text-align:start;"> BlackBgndShortcode</span>
</p>

results in:

image

but should be like:
image

I believe the #RRGGBBAA is being interpreted as #AARRGGBB
https://drafts.csswg.org/css-color/#hex-notation

this is almost certainly a difference between QT and current browsers:
https://doc.qt.io/qt-5/qml-color.html

The ttml file:
testfilepresentation-DNK.zip

p.s. it would be nice if the TTML box rendered over a grey background so that the background style of the text can be seen.

"Select MXF file" dialogue doesn't offer comprehensive navigation (at least on MacOS 10.14)

This dialogue appears with Add Asset -> Add existing MXF Track File. It offers you a drop-down of every level of the current path, but you can't select any of the entries, nor the "Look in:" options, and the green "up arrow" button doesn't work either. I don't see a way of navigating freely around the filesystem, so had to put the assets in the working directory. There's a similar dialogue for sidecar assets, with similar issues. Contrast with opening a package, which brings up a native file browser.

The Mac I am using is running 10.14, so it's possible it works better in later versions of the OS.

IMF Video issue

Have another issue with a video. It's marked with X. Any suggestions decreasing fr or size won't do.
IMF created with most recent DaVinci Resolve Studio.
ss-IMFTool-Video-Issue
Export IMF from DVR offers as codecs ProRes/easyDCP/KakaduJPEG200 - any incompatibilities here?

Length Element Omitted In Asset Map

While omission is technically compliant with the spec (ST429-9), IMF-Tool's missing Length element in the Chunk structure, often throws errors in systems that check expected versus actual file size. This would be a welcomed addition to the Asset Map, and a good double check of file integrity before a full hash.

API layer

Is there a api (command line or web api) for IMF tool to integrate into script for orchestrating workflow?

IMF 1.1

We currently can't read nor write IMF 1.1 (ST 2067-2:2016 or ST 2067-3:2016) packages.
For the time being, packages to be edited must be compliant to IMF 1.0 (ST 2067-2:2013, ST 2067-3:2013).

Is VOLINDEX.xml necessary?

I know it's just a small extra file that can be deleted without consequence, but does anyone use this any more? Its namespace is ...429-9/2007, but ST 429-9:2014 says:

"The VolumeIndex structure is not used. Both the VolumeIndex global element (but not the VolumeIndex element of the ChuckTypetype) and the VolumeIndexType global type are deprecated accordingly.
Note: Earlier versions of this specification included support for distributing Asset Maps across multiple storage volumes."

Please add frame number to Marker Track tooltip

It would be a useful reassurance if the tooltip which identifies a marker could also indicate its frame number, and perhaps also its timecode, or it could indicate whatever's selected for the playhead display. Many thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.