The Slicer is the tool used to send Video on Demand (VOD) content to the encoder cloud and comes in GUI and command line versions. In both cases, the slicer is manually invoked to kick off the process of preparing content for encoding.
The quickest way to ingest content on Windows or Mac OS X is via the GUI application bundled in the slicer download. See the tutorial Getting started with upLynk for instructions on using those apps.
- Locate the directory/folder where you expanded the upLynk slicer package.
- Start the slicer passing it your upLynk Content Management System (CMS) credentials and the path to the content you'd like to ingest into the upLynk system.
./slicer -u your-username -apikey your-api-key /path/to/your/video.mp4
Progress reports of this slice job will be printed to the command-line as well as updated in the upLynk CMS.
Video input formats
Most video file formats work reliably. Many customers use h.264/AAC MP4 files for VOD input to the slicer, but this is not required. We recommend that you not reprocess your content just to prepare it for the slicer - just pass it to the slicer in whatever format it is already in.
In general, higher resolution and a higher source bitrate produces higher quality output. However, the law of diminishing returns applies and bitrates above 25-30Mbps tend to slow down slicing time without producing any noticeable improvement in output quality.
Many video formats are suitable input to the slicer, for example:
mov, mpeg/mpg, avi, m4v, mkv
These are only the most common formats used; other formats are also usable. You can test your files for upLynk compatibility simply by attempting to slice them, and the slicer will produce an error message before encoding or uploading if it finds the file is incompatible.
Unflattened reference files are unsupported.
While upLynk makes great efforts to support the widest variety of formats, it cannot guarantee support for all formats. If you find a file format that you believe should be supported, please contact our support team and we will follow up with you.
Command line options
The format for calling the slicer command is:
./slicer <path to media file> <options>
The following table lists additional options and arguments that can be passed to the slicer along with their descriptions.
|-d "<description>"||Description to use for finished asset|
|-u <username>||upLynk user name|
Important: This setting and the SLICER_PASS environment variable have been deprecated and should not be used. Please use the apikey setting instead.
Requires Slicer version 17111500 or higher. Sets the secret API key through which Slicebot authenticates to the CMS. View your API keys by clicking the Advanced tab and then clicking Playback Tokens from the side navigation tab.
Example: apikey = abcDEFghiJKLmnoPQRtuvWXYz123ABCdefGHIJKL
|-extid "<string>"||external ID to store with asset|
If prefixed with '_replace:', upon encoding complete, replaces an existing asset with that external ID, if any.
|-progressformat <n>||Change progress display:|
0 - original format, one line
1 - timestamp | stage | % complete | file path
|-break <start>-<stop>[,...]||Insert ad breaks at the specified time ranges|
|-encwait||after slicing, wait for encoding to complete before quitting|
|-ttml <path>||Path to TTML file containing closed caption information|
Only hh:mm:ss.sss time formats are supported
|-scc <path>||Path to SCC file containing closed caption information|
|-no608||Disable processing of 608 captions.|
|-trim <start>[,dur]||Trim the file to the specified start time and duration|
<start> and <dur> must be integer milliseconds
|-forceAR <aspect_ratio>||Force the output to use the specified aspect ratio (w:h format)|
|-skipDRM||Encrypt the content but don't require a playback session to play it (typically used with ads)|
|-addtrack <beamID>|ext:<extID> <track description>||Adds the audio from the source file as an alternate audio track for the specified beam|
|-vtrack <n>||Use the n'th video track as the source video|
|-atrack <n>||Use the n'th audio track as the source audio|
|-lang <lang>||Specify RFC 5646 language code for audio track|
|-dvs||Flag the current audio track as a DVS track|
|-audiodesc <desc>||Specify a description of the audio track (not needed when using -addtrack) Usually this specifies the full language name for the track, such as "English" (default)|
|-libraries "<library name or GUID>[,<library name or GUID>]"||adds the asset to one or more shared libraries in the CMS. Library names must be exactly correct (including case), so it is generally safer to use the library GUID (from the CMS UI) instead.|
|-idpath <path>||writes the newly-created asset's ID (GUID) to the given path|
|-layout <dolby|ansi>||Sets the audio layout used for downmixing|
|-autoexpire <hours>||Sets the asset to be automatically deleted after a certain number of hours|
|-timedmeta <ms>:<key>=<value>||Adds timed metadata at the time indicated by <ms>. e.g. -timedmeta 0:TIT2=MyTitle|
Mixes multiple audio tracks together into a single track.|
<track> is an audio track number (0-based), and <channel> is one of: L,R,C,RL,RR,SL,SR,LFE
Fades audio/video/both from in from black/silence starting at the specified time, and for the specified duration (both in ms).|
A negative number can be used for <start> to indicate the distance from the end of the asset. e.g.
will fade the audio in starting 5 seconds from the end of the asset.
|-fadeout <audio|video|both>=<start>,<duration>||Same as -fadein except fades the audio/video/both out to black/silence|
|-bug <file>=<start>,<duration>||Overlays the specified PNG on the video with transparency at the specified start/duration (see -fadein). PNG resolution must match source video resolution and have RGBA encoding. If multiple bugs overlap, Z-order is determined by list order. Specifying a duration of 0 will overlay the entire asset.|
|-poster <milliseconds>||Generate a poster image from the video frame at the specified time|
|-poster_size <width>x<height>||Override the default poster image size (128x128) with the specified size|
|-poster_file <path>||Use the specified file as the poster image for the new asset|
|-gain <decibel>||Override the calculated gain/attenuation with the specified value.|
|-thumbnail <prefix>=<width>x<height>||Adds a thumbnail with the specified filename prefix and bounding width/height, this parameter may be specified multiple times to add multiple thumbnails|
|-meta <key>=<value>||Adds metadata to the asset. Can be repeated multiple times. Key must be an identifier. Put value in quotes if it contains spaces. Keys are case insensitive.|
|-meta.int <key>=<value>||Adds metadata with an integer value to the asset. Can be repeated multiple times. Value must be an integer, or will be treated as zero.|
|-meta.file <filename>||Adds metadata from a JSON file.|
|-nielsen <1>||Enables scanning for Nielsen audio watermarks.|
|-nielsen_ad_mode <add_mode>||Sets the Nielsen Breakout Code.|
Username environment variable
The username command line option requirement can be bypassed by setting the environment variable SLICER_USER.
Network Ports and Firewalls
The slicer relies on both ports 80 and 443 to communicate with the upLynk services and upload the encrypted slices for encoding. Outbound connections must be allowed on these ports.