Common presets [VC 21.3 GEN]
It is not always straightforward to construct a transcode preset that result in output with the desired format. Here are some guidelines for some of the most common formats.
H.264
The codec
element should be set to h264
. The default profile is Baseline. This can be overridden using the preset
element. The following values are accepted:
-
baseline
-
ipod
-
main
-
high
There are also AVC-Intra specific profiles, see below.
Example
An MP4 using the Main profile:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mp4</format>
<audio>
<codec>mp3</codec>
<framerate>
<numerator>1</numerator>
<denominator>44100</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
</audio>
<video>
<scaling>
<width>1280</width>
<height>720</height>
</scaling>
<codec>h264</codec>
<bitrate>3000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<preset>main</preset>
</video>
</TranscodePresetDocument>
New in version 5.0.
Depending on your license key Vidispine will use the H.264 encoder library from either MainConcept or Nablet. If your license allows for both, the Nablet version will be picked when using the h264 codec tag. You can override this by using the vendor specific codec tags: nablet_h264 and mc_h264.
AVC-Intra
To produce AVC-Intra output, the preset
element should be set to intra50
or intra100
depending on desired output. Also add a setting of codecTagString
to further specify the variant of AVC-Intra. The possible values are:
-
ai5p
– 50M 720p24/p30/p60 -
ai5q
– 50M 720p25/p50 -
ai56
– 50M 1080i60 -
ai55
– 50M 1080i50 -
ai53
– 50M 1080p24/p30 -
ai52
– 50M 1080p25 -
ai1p
– 100M 720p24/p30/p60 -
ai1q
– 100M 720p25/p50 -
ai16
– 100M 1080i60 -
ai15
– 100M 1080i50 -
ai13
– 100M 1080p24/p30 -
ai12
– 100M 1080p25
Example
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mov</format>
<audio>
<codec>pcm_s16le</codec>
<framerate>
<numerator>1</numerator>
<denominator>48000</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
</audio>
<video>
<scaling>
<width>1920</width>
<height>1080</height>
</scaling>
<codec>h264</codec>
<bitrate>100000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<gopSize>0</gopSize>
<pixelFormat>yuv422p</pixelFormat>
<preset>intra100</preset>
<profile>CBR</profile>
<setting>
<key>codecTagString</key>
<value>ai12</value>
</setting>
</video>
</TranscodePresetDocument>
ProRes
Set the codec
element to prores
. The preset
element must also be set to one of the following values:
-
PR422HQ
– ProRes HQ -
PR422
– ProRes 422 -
PR422LT
– ProRes LT -
PR422Proxy
– ProRes Proxy -
PR4444
– ProRes 4444 -
PR4444XQ
– ProRes 4444 XQ
The ProRes encoder will use the field-order information that Vidispine can read from the input file. In the case that Vidispine has the wrong information, you can override it by adding a setting
key-value to the video
element in the TranscodePresetDocument. The key
should be interlace_flag
and value one of:
-
progressive
-
top_first
-
bottom_first
Example
ProRes 422 LT:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mov</format>
<audio>
<codec>pcm_s16le</codec>
<framerate>
<numerator>1</numerator>
<denominator>48000</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
</audio>
<video>
<scaling>
<width>1920</width>
<height>1080</height>
</scaling>
<codec>prores</codec>
<bitrate>85000000</bitrate>
<preset>PR422LT</preset>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
</video>
</TranscodePresetDocument>
With interlace_flag
set to top_first
:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mov</format>
<audio>
<codec>pcm_s16le</codec>
<framerate>
<numerator>1</numerator>
<denominator>48000</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
</audio>
<video>
<scaling>
<width>1920</width>
<height>1080</height>
</scaling>
<codec>prores</codec>
<bitrate>85000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<preset>PR422LT</preset>
<setting>
<key>interlace_flag</key>
<value>top_first</value>
</setting>
</video>
</TranscodePresetDocument>
XDCAM IMX-30/40/50
The preset
element must be set to imx30
, imx40
or imx50
depending on desired output. Also, a setting must be added specifying codecTagString
. Accepted values are:
-
mx5p
– IMX-50 -
mx4p
– IMX-40 -
mx3p
– IMX-30
NTSC
To get NTSC output, there are a few changes that need to be made.
-
The
framerate
should have anumerator
of1001
and adenominator
of30000
. -
The
scaling
element should have aheight
of518
. -
Exchange the last letter of the
codedTagString
fromp
ton
(i.e.mx5p
tomx5n
)
Example
IMX-50:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mxf_d10</format>
<audio>
<codec>pcm_s24le</codec>
<channel>0</channel>
<channel>1</channel>
<channel>2</channel>
<channel>3</channel>
<stream>4</stream>
</audio>
<video>
<scaling>
<width>720</width>
<height>608</height>
<top>-32</top>
</scaling>
<codec>mpeg2video</codec>
<bitrate>50000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<displayWidth>
<numerator>720</numerator>
<denominator>1</denominator>
</displayWidth>
<displayHeight>
<numerator>576</numerator>
<denominator>1</denominator>
</displayHeight>
<displayXOffset>
<numerator>0</numerator>
<denominator>1</denominator>
</displayXOffset>
<displayYOffset>
<numerator>32</numerator>
<denominator>1</denominator>
</displayYOffset>
<containerSAR>
<horizontal>64</horizontal>
<vertical>45</vertical>
</containerSAR>
<gopSize>0</gopSize>
<pixelFormat>yuv422p</pixelFormat>
<preset>imx50</preset>
<setting>
<key>codecTagString</key>
<value>mx5p</value>
</setting>
</video>
</TranscodePresetDocument>
XDCAM HD422
The format
element must be set to mxf_ffmpeg
. There are also some settings that must be added, see example below. The codecTagString
setting should be one of the following values:
-
xd54
– 720p24 50Mb/s CBR -
xd55
– 720p25 50Mb/s CBR -
xd59
– 720p60 50Mb/s CBR -
xd5a
– 720p50 50Mb/s CBR -
xd5b
– 1080i60 50Mb/s CBR -
xd5c
– 1080i50 50Mb/s CBR -
xd5d
– 1080p24 50Mb/s CBR -
xd5e
– 1080p25 50Mb/s CBR -
xd5f
– 1080p30 50Mb/s CBR
NTSC
To get NTSC output, set the framerate
to have a numerator
of 1001
and a denominator
of 30000
, and use the appropriate codecTagString
from the list above.
Example
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mxf_ffmpeg</format>
<audio>
<codec>pcm_s24le</codec>
<channel>0</channel>
<channel>1</channel>
<channel>2</channel>
<channel>3</channel>
<stream>1</stream>
<stream>1</stream>
<stream>1</stream>
<stream>1</stream>
</audio>
<video>
<scaling>
<width>1920</width>
<height>1080</height>
</scaling>
<codec>mpeg2video</codec>
<bitrate>50000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<pixelFormat>yuv422p</pixelFormat>
<setting>
<key>flags</key>
<value>+ildct+ilme</value>
</setting>
<setting>
<key>top</key>
<value>1</value>
</setting>
<setting>
<key>dc</key>
<value>10</value>
</setting>
<setting>
<key>qmin</key>
<value>1</value>
</setting>
<setting>
<key>lmin</key>
<value>1*QP2LAMBDA</value>
</setting>
<setting>
<key>rc_max_vbv_use</key>
<value>1</value>
</setting>
<setting>
<key>rc_min_vbv_use</key>
<value>1</value>
</setting>
<setting>
<key>minrate</key>
<value>50000k</value>
</setting>
<setting>
<key>maxrate</key>
<value>50000k</value>
</setting>
<setting>
<key>bufsize</key>
<value>36408333</value>
</setting>
<setting>
<key>bf</key>
<value>2</value>
</setting>
<setting>
<key>codecTagString</key>
<value>xd5c</value>
</setting>
</video>
</TranscodePresetDocument>
New in version 5.0.
Depending on your license key Vidispine will use the XDCamHD encoder library from either MainConcept or Nablet. If your license allows for both, the Nablet version will be picked when using the mpeg2video codec tag. You can override this by using the vendor specific codec tags: nablet_mpeg2video and mc_mpeg2video.
Valid preset tags to use in the shape-tags are, final XDCamHD profile will be determined of input framerate:
-
xdcam_ex_1920
-
xdcam_ex_1440
-
xdcam_ex_1280
-
xdcam_hd_420_1440
-
xdcam_hd_420_1280
-
xdcam_hd_422_1920
-
xdcam_hd_422_1280
DV
For DVCAM, DVCPRO and DVCPRO50, codec
should be set to dvvideo
, for DVCPRO HD, it should be dv_100
. To get 16x9 aspect ratio, targetDAR
must be set (see example below). The value of pixelFormat
determines whether the output will be DV, DVCPRO or DVCPRO50.
Pixel format | Output |
---|---|
| DVCAM |
| DVCPRO |
| DVCPRO50 |
NTSC
To get NTSC output the following changes should be made.
-
The
framerate
should have anumerator
of1001
and adenominator
of30000
. -
The
scaling
should have aheight
of480
. -
codecTagString
should have a value ofdvpn
.
Example
16x9 DVCPRO:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>avi</format>
<audio>
<codec>pcm_s16le</codec>
<framerate>
<numerator>1</numerator>
<denominator>48000</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
</audio>
<video>
<scaling>
<width>720</width>
<height>576</height>
<targetDAR>
<horizontal>16</horizontal>
<vertical>9</vertical>
</targetDAR>
</scaling>
<codec>dvvideo</codec>
<bitrate>25000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<gopSize>0</gopSize>
<pixelFormat>yuv411p</pixelFormat>
<profile>CBR</profile>
<setting>
<key>codecTagString</key>
<value>dvpp</value>
</setting>
<setting>
<key>dtsmode</key>
<value>pts</value>
</setting>
</video>
</TranscodePresetDocument>
DNxHD
The codec
should be set to dnxhd
.
Avid DNxHR/DNxHD
In version 4.13, the MainConcept codec is available for DNxHD encoding. Set codec
to mc_vc3
. Set the preset element to one of the following values.
preset | width | height | interlace_flag | quality | Avid profile | Id |
---|---|---|---|---|---|---|
| 960 | 720 | progressive | medium | Avid DNxHD 100 | 1258 |
| 1280 | 720 | progressive | medium | Avid DNxHD 145 | 1252 |
| 1280 | 720 | progressive | high | Avid DNxHD 220 | 1251 |
| 1280 | 720 | progressive | high extended | Avid DNxHD 220x | 1250 |
| 1920 | 1080 | progressive | low | Avid DNxHD 36 | 1253 |
| 1440 | 1080 | progressive | medium | Avid DNxHD 100 | 1259 |
| 1920 | 1080 | progressive | medium | Avid DNxHD 145 | 1237 |
| 1920 | 1080 | progressive | high | Avid DNxHD 220 | 1238 |
| 1920 | 1080 | progressive | high extended | Avid DNxHD 220x | 1236 |
| 1920 | 1080 | progressive | RGB 4:4:4 | Avid DNxHD 444 | 1256 |
| 1440 | 1080 | top_first | medium | Avid DNxHD 100 | 1243 |
| 1920 | 1080 | top_first | medium | Avid DNxHD 145 | 1244 |
| 1920 | 1080 | top_first | high | Avid DNxHD 220 | 1242 |
| 1920 | 1080 | top_first | high extended | Avid DNxHD 220x | 1241 |
| 2048 | 1080 | progressive | high | 1272 | |
| 2048 | 1080 | progressive | high extended | 1271 | |
| 2048 | 1080 | progressive | RGB 4:4:4 | 1270 | |
| 4096 | 2160 | progressive | high | 1272 | |
| 4096 | 2160 | progressive | high extended | 1271 | |
| 4096 | 2160 | progressive | RGB 4:4:4 | 1270 | |
| any | any | progressive | low | Avid DNxHR LB | 1274 |
| any | any | progressive | medium | Avid DNxHR SQ | 1273 |
| any | any | progressive | high | Avid DNxHR HQ | 1272 |
| any | any | progressive | high extended | Avid DNxHR HQX | 1271 |
| any | any | progressive | RGB 4:4:4 | Avid DNxHR 444 | 1270 |
Example:
<TranscodePresetDocument>
<format>mxf</format>
<audio>
...
</audio>
<video>
<codec>mc_vc3</codec>
<preset>VC3_HQ_1080p</preset>
<setting>
<key>interlace_flag</key>
<value>progressive</value>
</setting>
<scaling>
<width>1920</width>
<height>1080</height>
</scaling>
</video>
</TranscodePresetDocument>
RED
Vidispine support RED as an input format so there is no special shape-tag settings that needs to be made. However, there are a few limitations and things to keep in mind.
Local file access
The transcoder needs to be able to read the RED file locally. Transcoder and Middleware needs to be running at the same machine.
Choosing an appropriate quality
Demuxing of RED material is a very computational demanding task. Normal RED footage has a resolution of 4K or 5K. Decoding such a frame in full resolution and quality is sometimes a bit overkill. That is, when creating a lowres file in 640x360 resolution you can save a lot of time by decoding the RED footage in a lower resolution.
You can specify what decoding/demuxing quality the transcoder should use by setting the demuxerSetting
element in your shape-tag:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mp4</format>
<audio>
...
</audio>
<video>
...
</video>
<demuxerSetting>
<key>r3d_demuxer_quality</key>
<value>full_premium</value>
</demuxerSetting>
</TranscodePresetDocument>
Valid values for r3d_demuxer_quality is:
-
full_premium
- Full resolution and the best quality -
half_premium
- Half of the width and height of the original resolution and the best quality -
half_good
- Half of the width and height of the original resolution with good quality -
quarter_good
- Quarter of the width and height of the original resolution with good quality -
eight_good
- An eight of the width and height of the original resolution with good quality -
sixteenth_good
- A sixteenth of the width and height of the original resolution with good quality
Multi-file RED clips
In case of multi-file RED clip the naming of the clips will be crucial. They should already be named (which they are as default):
<filename><index>.R3D
To preserve the filename of a RED file you can add a filename script to the storage where the RED files will be imported. For example:
PUT /API/storage/<storage-id>/metadata/filenameScript HTTP/1.1
Content-Type:text/plain
if (context.getExtension() != null && (context.getExtension() == "R3D" || context.getExtension() == "r3d"))
"VX-" + context.getOriginalFilename();
else
context.getFileId() + "." + context.getExtension();
Then you need to import the clips into an placeholder, this way there will only be one transcoded file instead of X (X being the number of clips). For example:
POST /API/import/placeholder?container=0&video=2
Content-Type: application/xml
<MetadataDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<timespan start="-INF" end="+INF">
<field>
<name>title</name>
<value>My placeholder for RED files</value>
</field>
</timespan>
</MetadataDocument>
POST /API/import/placeholder/<placeholder-id>/video?uri=file:/REDTEST_001.R3D&tag=mp4
Content-Type: application/xml
<MetadataDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<timespan start="-INF" end="+INF">
</timespan>
</MetadataDocument>
POST /API/import/placeholder/<placeholder-id>/video?uri=file:/REDTEST_002.R3D&tag=mp4
Content-Type: application/xml
MetadataDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<timespan start="-INF" end="+INF">
</timespan>
</MetadataDocument>
AAC using Nablet
New in version 5.0.
The codec
element should be set to nablet_aac
and the encoder has support for up to 8 channels. The default profile is Low Complexity (LC). This can be overridden using the settings
element with key AAC_PROFILE
. The following values are accepted:
-
AAC_MAIN
-
AAC_LC
-
AAC_SSR
-
AAC_LTP
The stereo mode can be set using the settings
element with the key AAC_STEREO_MODE
. The following values are accepted, default is: AAC_LR_STEREO
:
-
AAC_MONO
-
AAC_LR_STEREO
-
AAC_MS_STEREO
-
AAC_JOINT_STEREO
Depending on how you want to mux the output stream you can use two different output formats. The default is ADIF, which normally is used for MP4/MOV muxing. For MPEG transport stream muxing it is preferred to use the ADTS format. Use the settings
element with the key AAC_OUTPUT_FORMAT
. The following values are accepted:
-
AF_ADIF
-
AF_ADTS
Example
An MP4 using the Main profile:
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mp4</format>
<audio>
<codec>nablet_aac</codec>
<framerate>
<numerator>1</numerator>
<denominator>44100</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
<setting>
<key>AAC_OUTPUT_FORMAT</key>
<value>AF_ADIF</value>
</setting>
<setting>
<key>AAC_PROFILE</key>
<value>AAC_MAIN</value>
</setting>
<setting>
<key>AAC_STEREO_MODE</key>
<value>AAC_JOINT_STEREO</value>
</setting>
</audio>
<video>
<scaling>
<width>1280</width>
<height>720</height>
</scaling>
<codec>h264</codec>
<bitrate>3000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<preset>main</preset>
</video>
</TranscodePresetDocument>