MarkusPfundstein / imf-frameserver

WIP: Frame server for Interoperable Master Format

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IMF Frameserver - (CPL decoder)

Goal

Open Source Program to decode Interoperable Master Format (IMF) CPL & OPL into raw audio and video so that we can pipe it into ffmpeg or other processors

This is a WIP! Contains quite some shortcuts and unsecure code (e.g. strcpy). Please use with caution :-)

Features so far

  • take CPL & ASSETMAP as input and output .nut file with r210 10-bit RGB444 and pcms24le
  • supports multiple segments with start points and repeat counts
  • output can be piped into ffmpeg to produce whatever you want

Drawbacks

  • only CDCI(YUV422) yet, RGBA coming soon, color problems with YUV444
  • audio only wav s24le
  • only .nut pipe output
  • Not tested yet on content with broadcast framerates such as 23.97
  • running it still a bit clumsy (see test.sh)
  • might only compile under Ubuntu (nothing else tested)

Install

Ubuntu (WSL)

  • apt install libtool, automake, autoconf, cmake
  • run sh install-deps.sh
  • run make

Run it

(see test.sh)

CUR_PATH=$(pwd)
IMF_ENC=${CUR_PATH}/imf_fs

# we need to be in IMF directory for relative path resolve to work (to be fixed)
cd ~/bs500a-dalet-a-ov

CPL=CPL_52a5343e-1184-44b4-86e3-43477636ae69.xml
ASSETMAP=ASSETMAP.xml

# hack
export LD_LIBRARY_PATH=${CUR_PATH}/third_party/openssl/lib

#direct piping
${IMF_ENC} ${CPL} ${ASSETMAP} | ffmpeg -i - -f mp4 -y ~/xpipe.mp4

License

LGPL

About

WIP: Frame server for Interoperable Master Format


Languages

Language:C 75.0%Language:HTML 7.6%Language:Perl 5.7%Language:Assembly 3.8%Language:C++ 2.8%Language:Objective-C 2.2%Language:Makefile 1.3%Language:Shell 0.6%Language:Python 0.4%Language:XSLT 0.2%Language:CMake 0.1%Language:Java 0.1%Language:M4 0.1%Language:Roff 0.0%Language:JavaScript 0.0%Language:Tcl 0.0%Language:Cuda 0.0%Language:PHP 0.0%Language:DIGITAL Command Language 0.0%Language:Clean 0.0%Language:eC 0.0%Language:VCL 0.0%Language:Emacs Lisp 0.0%Language:CSS 0.0%Language:Inno Setup 0.0%Language:Awk 0.0%Language:Ruby 0.0%Language:Module Management System 0.0%Language:Verilog 0.0%Language:Max 0.0%