Usage instructions for OMAF Creator viewport independent mode - nokiatech/omaf GitHub Wiki

Usage instructions

Creating OMAF Viewport Independent MP4 files

Convert a mono 360 mp4 file to OMAF mp4 file

omafvi.exe -i file.mp4 -o omafvi.mp4

Convert a top-bottom framepacked 360 mp4 file to OMAF mp4 file

omafvi.exe -i file_TB.mp4 -o omafvi.mp4

Convert a mono uncompressed YUV sequence to OMAF viewport independent profile mp4 file

You need to first encode and package the raw sequence to traditional mp4 file in HEVC format. ffmpeg is one option to create mp4 files. You need to have ffmpeg built with a HEVC/H.265 encoder, e.g. libx265, see instructions here: https://trac.ffmpeg.org/wiki/Encode/H.265
There are also other HEVC encoders available for ffmpeg, e.g. Kvazaar. The command line parameters have to be modified accordingly. And further, there are other compatible solutions than ffmpeg for doing the mp4 packaging, e.g. mp4box.

In this example, we use uncompressed YUV input having a resolution of 3840 x 1920 pixels, and 30 fps framerate.

ffmpeg.exe -f rawvideo -pix_fmt yuv420p -s:v 3840x1920 -r 30 -i video.yuv -c:v libx265 file.mp4

omafvi.exe -i file.mp4 -o omafvi.mp4

Note! If the input YUV is framepacked stereo (top-bottom or left-right), the output name from ffmpeg need to be extended by either _TB or _LR, i.e. file_TB.mp4 or file_LR.mp4, depending on the framepacking order.

Creating OMAF Viewport Independent DASH streams

Convert a mono 360 mp4 file to OMAF DASH stream:

omafvi.exe -i file.mp4 -o omafvi.mpd

Note: the input file need to have GOPs of a fixed length, e.g. 90 frames.
The output consists of:

  • omafvi.mpd
  • omafvi.mono.init.mp4
  • omafvi.mono.1.mp4
  • ...
  • omafvi.mono.N.mp4

where N is file duration divided by GOP duration, e.g. if the video file is 30 seconds long, has 30 fps framerate, and contains GOPs of 90 frames, the N == 10, i.e. 10 media segments get generated.

Further, if the file.mp4 also contains audio, the following files get generated as well:

  • omafvi.audio.init
  • omafvi.audio.1.mp4
  • ...
  • omafvi.audio.N.mp4

Convert mono YUV to OMAF viewport independent profile DASH stream

See above for ffmpeg installation.

The input YUV has resolution 3840 x 1920 pixels, and framerate of 30 fps. We set GOP length as 60 frames == 2 seconds.

ffmpeg.exe -f rawvideo -pix_fmt yuv420p -s:v 3840x1920 -r 30 -i video.yuv -c:v libx265 -g 60 file.mp4

omafvi.exe -i file.mp4 -o omafvi.mpd

⚠️ **GitHub.com Fallback** ⚠️