REST API Services 1.50.0 - 1.99.0

1.99.0

Added

  • Placeholders in the output path can now be used with the Simple Encoding API: {uuid} or {asset} will be replaced either with a random UUID or with the name of the asset provided as input (for VIDEO or DEFAULT input type). More examples can be found here
  • Interlaced video input to the Simple Encoding API will now be deinterlaced automatically.

1.98.0

Added

A brand-new way to interact with our encoder - the Simple Encoding API

  • With the Simple Encoding API you only need a single API call providing an input source and an output destination to start an encoding.
  • You can find more information about the template and configuration possibilities here.
  • This API is especially meant for everybody looking to quickly prepare videos for OTT streaming (DASH and HLS) following industry best practices. Sensible defaults, no micro-optimizations.
  • Under the hood, this API is utilizing the same high performance encoding engine used by leading media brands, automatically creating the best ladder for each asset with our award-winning per-title.

1.97.0

Added

  • HLS Default Manifests use the language of the audio stream language (stream.metadata.language) if defined.

Fixed

  • Fixed a potential encoding stall for HDR to SDR conversions with files below 10 seconds.
  • Fixed a bug where Prewarmed Encoder Pools in combination with Cloud Connect could lead to very slow encodings.

1.96.0

Fixed

  • Fixed a bug for the VoD and live statistics endpoints with time ranges where offsets led to an empty result.

1.95.0

Added

Changed

  • AV1 encodings:
    • Speed - Encodings run now 5x faster.
    • Quality - Encodings now show appr. 30% higher quality when compared to HEVC/VP9 encodings.
    • Cost - Encodings are now significantly more cost effective. See our Encoding Minute Calculation Methodology for detailed pricing information.
  • Added startOffset to TextMuxing and ChunkedTextMuxing. This is used for setting the MPEGTS value for the RFC 8216 (HLS Specification) X-TIMESTAMP-MAP for WebVtt outputs (e.g.: X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000).
  • WebVttConfigurations with CueIdentifierPolicy INCLUDE_IDENTIFIERS will now generate CueIds starting from 1 instead of 0 if the FileInputStreamType is WEBVTT.
  • CueIdentifierPolicy default for WebVttConfigurations for inputs with FileInputStreamType TTML and SRT. The default is now INCLUDE_IDENTIFIERS instead of OMIT_IDENTIFIERS.

Fixed

  • Added support for adding DASH Label elements to Video-, Audio- Subtitle- and Image Adaptation Sets.
  • Fixed an issue where streams that were ignored by stream conditions are not indicated as being ignored (i.e., the ignoredBy is empty).
  • Streams with WebVttConfigurations will now be trimmed with the same offset and duration as the video stream of the same Encoding if the FileInputStreamType is WEBVTT (This works now same as TTML and SRT FileInputStreamTypes already used to).
  • Fixed an issue where output subtitle cues' timestamps were shifted by the value of the first video PTS, if FileInputStream is used for the subtitle stream
  • KeyFrames are now working for streams with WebVttConfigurations

1.94.0

Added

  • Preset configurations for setting dynamicRangeFormat:

Deprecated

  • Removed deprecated AV1 API parameters which had no effect on visual quality but lead to higher encoding times.

1.93.0

Added

  • Support for adding an AAC or Dolby Atmos audio stream along with a Dolby Vision video stream to a MP4 muxing.
  • Cloud regions AZURE_GERMANY_WESTCENTRAL, AZURE_EUROPE_NORTH and AZURE_UAE_NORTH are now supported. AZURE_UAE_CENTRAL is only accessible for UAE North customers requiring in-country disaster recovery (as per Microsoft), so it can only be used for Azure connect by those customers.

Fixed

  • Corrected the documentation for BIF distance which was not marked as required.

1.92.0

Added

  • Support DolbyVisionInputStreams together with other input stream types like IngestInputStream, AudioMixInputStream, etc.

1.91.0

Fixed

  • Invalid private keys are now reported correctly when using Cloud Connect on GCP

1.90.0

Added

With this release we've improved the encoding capabilities with regards to HDR conversions for H265 output. From now on we support

  • Dolby Vision to HDR10
  • Dolby Vision to SDR
  • HDR10 to HLG
  • HLG to HDR10
  • SDR to HDR10
  • SDR to HLG

The encoder detects the applicable conversion based on the input and the configured output color settings. To make it easier to correctly configure the output we have added preset configurations for the different dynamic range formats. These can be configured on the H265 resource via the setting dynamicRangeFormat.

Dolby Vision input can be configured with a Dolby Vision input stream


1.89.0

Added

  • Support for setting duration=null for Time-based Trimming to indicate that the whole stream should be used (considering offset). offset=null will be defaulted to zero now. We also fixed and issue when settingduration=0 which lead to different results for video and audio. Setting duration=0 will now lead to 0 frames for video and audio.
  • Manifest Generation now supports HDR10 and HLG for DASH for progressive muxings.

Fixed


1.88.0

Added

  • Dash Manifest generation for segmented HDR Output is now setting essentialProperties and supplementalProperties correctly for HDR10 and HLG compatible settings

1.87.0

Added

  • Added EXPLICIT_PS option to HeAacV2Signaling. The option EXPLICIT_SBR now signals Parametric Stereo (PS) implicitly.
  • Improved descriptions for HeAacV1Signaling and HeAacV2Signaling.
  • Automatic shutdown of a live encoding after a certain period of time, configurable via the autoShutdownConfiguration.streamTimeoutMinutes configuration when starting a Live Encoding.
  • Automatic shutdown of a live encoding if input is lost and does not reconnect within a certain time period, configurable via the autoShutdownConfiguration.bytesReadTimeoutSeconds configuration when starting a Live Encoding.
  • Fail fast if not all video streams use the same input configuration.
  • Fail fast if video streams are configured to have more than one stream input (except in the case of CEA 608/708 captions passthrough, where this is expected)

Fixed

  • Webhook for ENCODING_STATUS_CHANGED now can be provided with customData (similar to webhook ENCODING_FINISHED or ENCODING_ERROR).

1.86.0

Added

  • Added new property for DASH manifests which defines the compatibility of the manifest with the Standard DASH Edition. Setting the dash edition compatibility to V4 will support the endNumber attribute for SegmentTemplate DASH manifest, specifying the last available segment. This feature is supported when creating a new DASH manifest via the startEncoding call and configuring the V2 ManifestGenerator OR when creating the manifest via the DASH manifest creation endpoint

Fixed

  • GO API SDK
    • Endpoints with optional request bodies like the Start Encoding endpoint are now generated as two methods. One will not accept a request body, the second one does accept a request body parameter and will have the suffix WithRequestBody in the name.
  • Java API SDK
    • For endpoints with optional request bodies like the Start Encoding endpoint an additional method overload will be generated which does not accept a request body parameter.

1.85.0

Added


1.84.0

Added

  • Region us-west2 is now supported in GCE cloud (GOOGLE_US_WEST_2)

Changed

  • Removed the deprecated manifest generator V2_BETA option from our API SDKs. For generating manifests during the encoding process please use V2.

Fixed


1.83.0

Added

  • Added fail fast when using AC3 or E-AC3 with TS muxing and DRM as this is not supported
  • Implemented support for the DTS:HD and DTS:X audio codecs. The openAPI can be found here. This feature is compatible starting with the 2.88.0 encoder version. Only MP4 and internally fragmented muxings are supported for DTS:HD/DTS:X. DRM configurations are not supported with DTS:HD/DTS:X codecs.

1.82.0

Added

  • Added a new AudioVideoSyncMode RESYNC_AT_START_AND_END to the StartEncodingRequest. This mode pads audio streams with silence, if the audio streams are shorter than the video stream. This prevents DASH clients trying to download non-existent audio segments, if the mediaPresentationDuration is longer than the duration of the audio stream. This new mode is now also the default value.

Changed

  • Added Fail Fast for manifestGenerator V2 with encoder versions < 2.70.0 (using it with encoder version >= 2.86.0 is recommended).
  • ManifestGenerator V2 is the default for new customers going forward.

1.81.0

Added

  • Manifest generator V2 is now generally available and supports all manifest features of our API.
    • It can be used by directly setting manifest IDs in the start encoding request and setting manifestGenerator to V2.
    • We are therefore deprecating the manifest generator V2_BETA option and will remove it from our API SDKs in release v2.89.0.
    • For more information see our tutorial here.
  • Improved validation for Per-Title configurations using multiple templates with fixed resolution, fixed bitrate and bitrate selection mode COMPLEXITY_RANGE: Encodings now fail fast if the difference between the minimum or the maximum bitrate of consecutive streams is smaller than the configured minimum bitrate step size.

1.80.0

Added

  • Added support for Thumbnail Letter and Pillarboxing. Supported aspect modes: CROP, PAD, STRETCH. More Details described in the API Calls:

Fixed

  • When retrieving encodings and using the parameter search in combination with sorting by finishedAt a 500 status code was returned
  • When using an incorrect manifest ID (or one of a different type) in the Encoding Start a proper error message is returned now instead of an Internal Server Error response.

1.79.0

Added

  • IMSC as subtitle output format from TTML and SRT inputs. For TTML styling passthrough is available.
  • Warning when creating or using a H264 Configuration with settings or a preset that is not compatible with the selected profile. adaptiveSpatialTransform=true only works with profile HIGH. bframes > 0, cabac = true, and weightedPredictionPFrames = true are only working with MAIN or HIGH.

Fixed

  • For DASH manifests, containing Dolby audio renditions, the codecs attribute is not set on AdaptationSet level anymore but only on the Representation level. This also fixes a rare case of duplicate entries in the codecs attribute which could have led to device compatibility issues.

1.78.0

Added

  • Dolby Digital and Dolby Digital Plus codec configurations are now available as replacement for AC3 and EAC3.
    • We are therefore deprecating AC3 and EAC3 as the two new codec configurations are producing output, which conforms to Dolby's high certification standards.
    • Our multi-codec example now uses Dolby Digital instead of AC3.
    • For more information see our tutorial here.
  • Sprite generation no longer requires both width and height to be set, as long as one of the two values is configured, the other one is automatically computed based on the aspect ratio of the video.
  • Thumbnail creation has been extended to allow the same options with regards to height and width as sprite generation.

Changed

  • We improved the error handling and retry behaviour in case of scheduling failed. Previously unrecoverable errors could take 40 minutes to detect, which is no longer the case.

Fixed

  • Fixed LIVE encodings reporting too low (occasionally negative) statistics after a restart
  • Fixed a bug that could cause billing address changes to fail.

Known Issues

  • AdaptationSets in DASH manifests could contain the same codec multiple times in the codecs attribute, when the manifest contains a Dolby Digital, Dolby Digital Plus or a Dolby Atmos rendition.

1.77.0

Added

  • targetDurationRoundingMode property on HLS manifest, which defines the rounding mode for the target duration (normal or upward rounding) for manifests generated during the encoding.

1.76.0

Added

  • If we cannot request VM instances the api returns now more detailed error messages regarding the root cause of a "Scheduling failed" for Cloud Connect customers .

1.75.0

Added

  • If we cannot configure VM instances the api returns now more detailed error messages regarding the root cause of a "Scheduling failed" for Cloud Connect customers .

Changed

Fixed

  • Improved the SCTE35 cue tags insertion so the time frame between the cue tags is always bigger or equal to the configured cue duration.
  • Previously it was possible, that encodings started with prewarmed encoder pools did not use a prewarmed instance even though it was available
  • Fixed a concurrency issue which could lead to invalid state when calling start on prewarmed encoder pools in quick succession

1.74.0

Added

  • Added support for SCTE-35. When running a live encoding, calling this endpoint will trigger the insertion of cue tags in the provided HLS manifests and ads will be inserted.
    Note: this is an experimental feature.

Fixed

  • Fixed an issue which led to a cascade of scheduling failed error

1.73.0

Added

  • Added targetDurationRoundingMode property on HLS manifest, which defines the rounding mode for the target duration (normal or upward rounding).

Fixed

  • A validation for live edge offset in HLS Manifests introduced with v1.72.0 could falsely fail, if a CC caption has been used as media stream.
  • Fixed incorrect audio manifest relative path when generating audio-only HLS manifest with MP4 muxing.

1.72.0

Changed

  • Improved stability for encodings on Google Cloud.

Fixed

  • Added validation for Live Edge Offset in HLS Manifests: Live Edge Offset now has to be >= than the segment length of their assigned muxing
  • Fixed concurrency issue for manifest status updates from encoders (introduced in Encoder v2.75.0) that could lead to inconsistent status
  • Fixed manifest status endpoints (DASH, HLS and Smooth ) to return a spec conform servicetask property.

1.71.0

Added

  • Added support for additional Sprite features so that they can be used for trick-play with DASH manifests. It's now possible to additionally specify the tile format (hTiles/vTiles), JPEG quality and a creation mode.
  • Added Image adaptation sets for DASH manifests with Sprite representations to enable video players to provide tiled thumbnails based on Sprites.

1.70.0

Fixed

  • Stability improvements for Azure encoding clusters.
  • Changed the rate property of Stream Infos of Live Statistics in the API specification and SDKs from integer to its actual type double
  • PHP API SDK
    • Fixed an issue in ErrorHandler class that prevented an update to PHP 7.2

1.69.0

Added

  • Updates in the internals of the TTML to WebVTT subtitle conversion:
    • Added support for basic styling in TTML to WebVTT subtitle conversion, configurable via WebVttConfiguration
    • Added support for ChunkedTextMuxing in TTML to WebVTT subtitle conversion: allows to output segmented WebVTT files

1.68.0

Added

Changed

  • Instead of failing during the encoding process
    • the Add Dolby Vision Metadata call will fail if enableHrdSignaling of the Stream's Codec Configuration is not set to true
    • the Create VP9 Codec Configuration call will fail if pixelFormat is not any of YUV420P, YUV422P, YUV440P, YUV444P, YUVJ420P, YUVJ422P, YUVJ440P, YUVJ444P, YUV420P10LE, YUV422P10LE, YUV440P10LE, YUV444P10LE
  • For TTML to WebVTT subtitle conversion with ChunkedTextMuxing setting cueIdentifierPolicy to OMIT_IDENTIFIERS is now mandatory

Fixed

  • Improved reliability of encoding startups

1.67.0

Changed

  • Improved resiliance against server or network errors for manifest uploads
  • DRM keys are now hidden in the response as default.
  • For SRT to WebVTT subtitle conversion with TextMuxing setting cueIdentifierPolicy to OMIT_IDENTIFIERS is now mandatory

1.66.0

Added

  • Region europe-west3 is now supported in GCE cloud

Changed

  • Encoder Versions below 2.53.0 are outdated for Azure cloud and will automatically be set to STABLE when executing an encoding.

Fixed

  • SDKs deserializing a WebVttSidecarFile as SidecarFile when retrieved via List Sidecars

1.65.0

Added

  • Broadcast TS muxings can now configure the rate for subtitle streams
  • Broadcast TS muxings can now configure the PID for subtite streams
  • After multiple, failed, consecutive attempts to deliver a pending notification to the endpoint of the configured Webhook, the Webhook will get auto-muted and no further notifications will be sent until the Webhook becomes reachable again and the customer has un-muted the notifications (see FAQ). When a Webhook is auto-muted, the customer will be immediately informed through an email.
  • V2 manifest generator (BETA)
    • The V2 manifest generator is a new implementation that is used for DASH and HLS manifests created as part of the encoding process (SMOOTH manifests are unchanged and supported as before).
    • The new manifest generator can be used by setting the ManifestGenerator parameter in the StartEncodingRequest to V2_BETA. The new manifest generator is currently in BETA and will receive new features frequently. To make use of the new generator, list the manifests you want to have generated automatically in the vodDashManifests and vodHlsManifests properties of the StartEncodingRequest.
    • Various bugs have been fixed when manifests were generated during the encoding.
    • HLS
      • Added support for Widevine and CENC Drm
      • Improved TARGET-DURATION calculation
      • AVERAGE-BANDWIDTH, CLOSED-CAPTIONS attributes are now set correctly
      • Improved precision of BANDWIDTH attribute
    • DASH
      • Fixed a bug where the channel layout was incorrectly chosen for some Audio AdaptationSets for DASH manifests.

1.64.0

Fixed

  • Stability improvement for Azure Encoding Cluster startup and shutdown

1.63.0

Changed

  • Webhook calls now have a read timeout of 10s and a connection timeout of 5s and are retried 10 times at most.

1.62.0

Added

  • Expose the analysisDetails property of Stream StreamInput resources in the SDKs

1.61.0

Changed

  • Improved handling of provisioning and unprovisioning of machine instances for encodings in Google Cloud regions when facing rate limiting from the Google Compute API.

Fixed

  • List all Muxings endpoint not returning type property for PACKED_AUDIO, TEXT, CHUNKED_TEXT and MXF muxings

1.60.0

Added

  • On encodings that fail with licensing errors, the corresponding retry hint is set in the status response.

Changed

Fixed

  • When using colorConfig on H264, H265 or VP9 configurations with a codec preset, it will not be classified as a custom preset anymore
  • Fixed an error when creating an HLS or DASH default manifest without specifying the version property. The default V1 will now be set.

1.59.0

Added

Changed

  • Limited retries of firing of a webhook to a maximum of 5 minutes.
  • On-demand DASH manifests will fail with a proper error message if no representations are configured.

1.58.0

Added

  • Securing your assets with Nagra NexGuard FileMarker A/B Watermarking is now available
  • Support for Static IPs for Live Encodings running on Google Cloud regions.
  • Cloud Connect Support for Static IPs for Live Encodings running on Google Cloud and AWS regions.
  • Segmented WebVTT subtitles now can be configured to either omit or include WebVTT cue identifiers (included by default). Please note that the following restrictions apply:
    • SRT to WebVTT conversion workflow does not support cue identifiers as of now. Therefore it needs to be set to OMIT_IDENTIFIERS.
    • Cue identifier can not be configured for non-segmented WebVTT outputs.
  • API SDK examples

Changed

  • Changed default branch main for all API SDK repositories
    • We decided to rename the default branch for all API SDKs to main. See GitHub's support page for more information and guidance on how to update a local clone of these repositories.

Fixed

  • Support for GenericS3 output with SSL and signature version V2 for manifests uploaded via the manifest start endpoints: DASH, HLS, and Smooth.
  • Fixed bug that can lead to stuck manifest generations.
  • Removed security critical fields from the response in the Query SPEKE configuration endpoint.

1.57.0

Added

  • Support for Packed Audio Segments: Allows to create Packed Audio Segments containing encoded audio samples and ID3 tags that are packed together with minimal framing and no per-sample timestamps.
  • Added configuration of PCR interval for Broadcast TS.

Fixed

  • Version check when using SRT file input to prevent using an incompatible version prior to 2.60.0.
  • Fixed SPEKE issue where the initialization vector was incorrectly encoded during the key exchange leading to an invalid initialization vector for stream encryption.
  • Fixed an issue with failed encodings when using channelLayout in audio mix input stream

1.56.0

Added

  • Introduced new default encoder error for encodings that failed because of an unknown reason. We now will return the retryHint UNDEFINED for these encodings at the encoding status endpoint
  • The status of the static IP is being exposed now
  • Added fail-fast when clear and DRM muxings are configured with the same output

Fixed

  • Available encoding slots may have been calculated incorrectly when encoding in multiple sub-organizations at the same time
  • When using SPEKE the signature of a key exchange request during the last week of a year included the upcoming year.

1.55.0

Added

Changed

  • Made Manifest Generation more resilient by adding some retries.

Fixed

  • Changed crop filter to allow only zero or positive values.

1.54.1

Added

  • Added new encoding status changed webhooks. For conditions, the following attributes are possible:

    • type: 'Input file download', 'Input file analysis', 'Per-Title analysis', 'Encoding', 'Progressive Muxing'
    • progress: number in range of 0-100
    • status: 'RUNNING', 'FINISHED', 'ERROR'

    Examples:

    • To only get notified about the encoding process, create a Condition object and set attribute='type', value='Encoding', operator=EQUAL
    • To only get notified if a workflow step is over 50%, create a Condition object and set attribute='progress', value='50', operator=GREATER_THAN
    • To only get notified if a workflow step is finished, create a Condition object and set attribute='status', value='FINISHED', operator=EQUAL

1.54.0

Added

  • Encodings can now be filtered and sorted by the property finishedAt

1.53.0

Added

  • Added externalIdMode for S3RoleBasedOutput, S3RoleBasedInput and Speke Provider.
  • Customers using their own Azure account can now opt-in, so that all SSH communication comes from one specific IP address. This enables a more rigid network security policy where only one IP is allowlisted for SSH connections.
  • Early access for pre-warmed encoder pools which eliminate queuing times for scheduled encodings (please get in touch to try it).

Fixed

  • HLS Manifests can now be configured to add the channels attribute in a standard conform way.
  • Removed unused encryption property from webhook resources.
  • DAR settings for H265 are now applied correctly.

1.52.1

Fixed

  • Go API SDK
    • Code formatting was off in release 1.52.0, this is now fixed again
  • Python API SDK
    • Added missing dependency pytz to requirements.txt and setup.py

1.52.0

Added

Fixed

  • Fixed unnecessary & in the links of the response for the list all inputs endpoint

1.51.0

Added

Changed

  • Consolidated manifest status endpoint for Dash, HLS, and Smooth. After starting the manifest generations, manifests will be in status QUEUED, once processing starts they will transition into status RUNNING and finally into FINISHED/ERROR depending on the result of the generation.

Fixed

  • Fixed the cache-control header for manifest uploads in both Live and VoD workflows to contain the correct max-age:value instead of max-age=value string
  • Encodings with a name longer than 255 characters do no longer result in an internal server error.
  • When calling the stream filter endpoint without setting the position attribute, a 400 error is now correctly returned instead of an internal server error.
  • The correct value false for the adaptiveSpatialTransform for H264 in the VOD_STANDARD preset is now applied.

1.50.0

Added

  • When using the list endpoint for encodings you can now use selectedCloudRegion, selectedEncoderVersion, and selectedEncodingMode as filter parameters

Changed

  • Encodings in status ERROR, CANCELED, FINISHED, and TRANSFER_ERROR will now always set the finishedAt timestamp in the list encoding, get encoding and get encoding status calls. The errorAt timestamp which has been previously set on error encodings is deprecated but will still be populated to ensure backwards compatibility. Note that for encodings prior to this release the finishedAt timestamp might be inaccurate in case of a cancelled encoding.
  • C# API SDK
    • Up until now, enum value names were missing underscores in most cases. To be more consistent with our API and other SDKs we corrected this mistake.
  • Go API SDK
    • The name of 3 enum values was corrected (M3U8_URL, DESEDE, UHD_8K)
  • PHP API SDK
    • The name of 3 enum values was corrected (M3U8_URL, DESEDE, UHD_8K)