REST API Services 1.0.0 - 1.49.0
1.49.0
Added
- Added additional timestamp properties and
progess
information to Encoding object. - Introduced polymorphic details endpoints for following resources: codec configs, muxings, inputs, outputs, filters, DRMs.
Changed
- HLS VOD manifests now by default include the framerate in the master manifest. (requires a correct streamId being set on the HLS streaminfo).
- HLS VOD manifests now include PLAYLIST-TYPE:VOD.
- Enhance error messages for the creation of GCE Accounts.
Fixed
- Default DASH and HLS failed when any output path contains characters within round brackets (e.g.
myfolder(test)
). - Go API SDK
- Fixed issue that prevented users from creating stream conditions.
- Fixed issue that prevented the user from creating resources with properties which were empty strings.
1.48.0
Added
- Add List of VoD SMOOTH Manifests to StartEncodingRequest for VoD encodings
- Support for XDCAM output with the following new codecs / muxings:
- H262 / MPEG2 video codec configuration, with mandatory preset
XDCAM_HD_422
- PCM audio codec configuration
- MXF muxing
- H262 / MPEG2 video codec configuration, with mandatory preset
1.47.0
Changed
- Moved the HLS characteristics from the group level to the group element level to facilitate separate characteristics for separate group elements.
1.46.1
Fixed
- Fixed an issue where encodings with configured fallback regions were started on the fallback region even though the preferred region was healthy.
1.46.0
Added
- OCR processing of DVB subtitles is now supported for live encodings with an output using the WebVTT codec and a muxing of either ChunkedText or fMP4
- ChunkedTextRepresentation for Segmented WebVtt in DASH Manifests in combination with DVB subtitles
- DvbSubtitleInputStream to allow specifying the Dvb subtitle input stream
- Support for Segmented WebVtt in HLS Manifests in combination with DVB subtitles
- Python API SDK:
- We now also publish our client to PyPi.org
- Added the GCE region endpoint to specify the network and the subnet for GCE-Connect.
Fixed
- When using Input/Output with S3 Role-Based or GCS Service Credentials bucket the closest encoding region is now chosen depending on the region of the bucket
1.45.0
Added
- Added Dolby Atmos support
- Input as ADM or DAMF Dolby Master files
- Output to fMP4 in DASH/HLS
- Support for Widevine, PlayReady and FairPlay DRM
- Added the possibility to have a fixed IP range for GCP-Connect on port 22.
- If different segment lengths are configured for the same stream a warning is generated which says which segment length is used.
1.44.0
Added
-
For video encodings a display aspect ratio (DAR) for the output can be specified. If the DAR does not match with the width and height, then the sample aspect ratio (SAR) will be adjusted accordingly.
-
Auto restart of live encoding on internal encoder error can be enabled via the
AutoRestartConfiguration
on live encoding start. -
Added the concept of fallback regions. In case it is not possible to start the encoding on the primary region we retry with the given fallback regions. The failure previously manifested as a
Scheduling failed
error. -
Added support for passthrough of DTS audio codecs.
-
Codec configuration now fails if the following values are set differently for a Dolby Vision stream:
- ColorSpace =
UNSPECIFIED
- ColorPrimaries =
UNSPECIFIED
- ColorTransfer =
UNSPECIFIED
- ColorRange =
JPEG
- MasterDisplay =
G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)
- ColorSpace =
-
Ingest Input Stream, Dolby Vision Metadata Ingest Stream, File input stream, DVB Teletext input stream, CEA 608 Input Stream, and CEA 708 Input Stream now support
inputPath
longer than 255 characters.
Fixed
- Fixed an issue where HLS
characteristics
field on subtitles was not written into the master manifest file when using VTT Media - If the input file contained metadata tags with 4 byte chars then the Stream Input endpoint never returned data. This was fixed and the 4 byte chars are replaced with �.
- Added additional validation for manifest paths.
1.43.0
Added
- Customers using their own AWS account can now opt-in, so that all HTTP communication on port 9090 and 9999 comes from one specific IP address. This enables a more rigid network security policy where, per default, every IP addressed but one is blocked for HTTP connections.
- Enabled restart of live encodings if the encoder is unresponsive due to an instance failure (hardware, software, network issue etc.). This will lead to the live encoding being started on an instance with a new IP address.
Changed
- Allow the restart of a finished or error live encoding.
- Further improved Database queries to increase performance for list calls of configurations, list calls of outputs, list calls of inputs and list calls of filters
Fixed
- Enabled retries for m3u8 manifest uploads when the upload runs into an internal google error
- Fixed a display issue with minutes per codec not matching overall minutes
- Fixed potential out of memory errors when creating lots of manifests simultaneously
- Fixed an issue where HLS characteristics field on subtitles was not written into the master manifest file
1.42.0
Added
- Added
status
property for manifest listing calls to the OpenAPI Clients.
Fixed
- Encodings with HTTP(s) inputs and servers that don't support HEAD requests might have failed
1.41.0
Added
- Implemented earlier feedback if a specified file doesn't exist on an ftp or http server.
- If a not supported
presetConfiguration
is selected then the request will now fail. This is now enforced for h265 and vp9 as well.
Changed
- Improved Database queries to increase performance for list calls of configurations
- Improved Database queries to increase performance for list calls of filters
- Improved Database queries to increase performance for list calls of outputs
- Improved Database queries to increase performance for list calls of inputs
Fixed
- Fixed incorrect date-time formatting of LiveEncodingStatsEvent of the Live Statistics Endpoint and Live Statistics Events Endpoint
- For the Live Input Stream Changed Email Notification a fail fast was added if the conditions are not set.
1.40.0
Added
- Added support for
VOD_SPEED
,VOD_STANDARD
andVOD_HIGH_QUALITY
presets for VP9 codec configuration.
Changed
- PHP API SDK:
- Updated Getting Started Guide to use our new API SDK.
Fixed
- For HLS a fail fast was added if the uri of a VTT Media starts with a
/
. - On DASH manifest creation including Progressive WebM muxings the width and height attributes are now set on Representation level instead of AdaptationSet level.
- Improved encoding stop call to handle cases in which the encoder is unresponsive.
- List all Codec Configurations endpoint:
- H264 and H265 configurations now include the formerly missing property
colorConfig
. - The call does not fail anymore if the response includes a WebVTT configuration.
- H264 and H265 configurations now include the formerly missing property
1.39.0
Added
- Added the information endpoint for fMP4 muxings.
- Added List DRMs endpoint for Progressive WebM muxings
- PHP API SDK:
- After steady improvements and thorough testing over the last few months, we decided it's time to remove the alpha tag. There will be no further breaking changes.
- Created 10 examples showcasing the usage of our new PHP API SDK.
Fixed
- Live2Vod manifests can now be successfully created, after the livestream has been restarted
- Java API SDK:
- BitmovinException now also contains error information (error code & message) if the log level is not set to
FULL
- BitmovinException now also contains error information (error code & message) if the log level is not set to
1.38.0
Added
- Added daily statistics endpoint for live encodings
- Added
sourceChannels
toAudioMixInputStreamChannel
for audio mix input streams to allow to mix and merge channels - Added the possibility to select subtitle streams via
selectionMode
SUBTITLE_RELATIVE
. See streams - Added Support for Service Account based GCS inputs and ouputs
- Added H.264 preset VOD_QUALITY
Changed
- A maximum of 5 webhooks per webhook type and resource can be configured
Fixed
- The
ignoredBy
property will be set correctly for text muxing streams
1.37.0
Added
- Implemented secure transfer support for Azure Blob Storage
- Implement Dash Segment Timeline for VOD
- C# API SDK:
- After steady improvements and thorough testing over the last few months, we decided it's time to remove the alpha tag. There will be no further breaking changes.
- Created 10 examples showcasing the usage of our new C# API SDK.
Fixed
- Fixed an internal 500 error which was caused by an invalid search parameter when querying the GET encoding endpoint
1.36.0
Added
- Added support for Segment List for MP4 Dash On-Demand Manifests
- Added support for AES-128 Encryption for Progressive TS muxings
- Added support for Role properties on Dash On-Demand manifests
- PHP API SDK:
- Extended error messages to show all relevant details at a glance
- Added
ConsoleLogger
and better request / response logging - Enabled configuration of
tenantOrgId
to be able to connect to the API as a tenant of an organization.
Fixed
- PHP API SDK:
- Empty objects in request bodies were serialized as empty arrays, which resulted in
400 - Bad Request
responses in the past.
- Empty objects in request bodies were serialized as empty arrays, which resulted in
1.35.0
Added
- Added an input file check for S3, Azure and GCP before starting the encoding
- Support for progressive WebM DASH manifests
- Added condition based DASH default manifest creation. For example to create a manifest that only contains video streams up to a specific resolution. This can be used with the new v2 version of the default manifest. V2 is considered experimental and still subject to change. Breaking changes will be announced in the release notes.
1.34.0
Added
- Dash default manifest V2 groups video representations with the same encryption into the same adaption set.
- CEA 608/708 subtitle passthrough for H265 codec configurations via property
cea608708SubtitleConfig
. - Added
sshPort
andfaspPort
to Aspera inputs to be able to configure non-standard ports for session intialization and data transfer.
Changed
- Adjusted H265 codec configuration preset
VOD_SPEED
to better fit in betweenVOD_STANDARD
andVOD_HIGHSPEED
.
Fixed
- Fixed the handling of an edge case, that resulted in encodings failing with the error message
Scheduling failed
.
1.33.0
Added
- Python API SDK:
- After steady improvements and thorough testing over the last few months, we decided it's time to remove the alpha tag. There will be no further breaking changes.
- Created 10 examples showcasing the usage of our new Python API SDK.
Fixed
- Improve DASH Manifests compatibility for Vtt Representations with certain players where
mediaPresentationDuration
was previously set to0
- Fixed invalid return types in the http response when calling the SPEKE Get endpoint
1.32.0
Added
- Changed default watermark of trial encodings.
Fixed
- Fixed bug which allowed failed encodings to be started again.
- Fixed a bug which prevented status updates for encodings with an encoder version older than v2.2.0.
- Resolved problem which prevented encoding big-sized input files to multiple progressive muxings.
1.31.0
Added
- Added Image Overlay for live encodings
- Support concatenation for multiple resolution inputs
- Specify AspectMode when adding a concatenated input stream
Fixed
- A 500 error has been returned when adding an invalid DRM configuration to a muxing instead of client error
1.30.0
Added
- Improved validation messages for invalid Dolby Vision configurations, like configuring Dolby Vision metadata on an audio stream.
- Added
segmentsMuxed
to WebmMuxing which contains the number of segments that have been encoded.
Fixed
- Default HLS manifest creation does not fail anymore, when SPEKE config contains incompatible DRM systems.
- HLS manifest creation does not fail anymore for big inputs and huge configurations (~20 streams and more).
- Fixed the duration number format of very short HLS segments.
1.29.0
Changed
Duration
Stream Input Details was incorrectly set as Integer instead of Double in documentation.
Fixed
- Converted SCC to WebVTT now succeeds when creating HLS manifests
1.28.0
Added
- Added new H264 codec configuration presets targeted for Live encodings:
LIVE_VERYLOW_LATENCY
,LIVE_ULTRAHIGH_QUALITY
,LIVE_LOWER_LATENCY
,LIVE_STANDARD
,LIVE_VERYHIGH_QUALITY
andLIVE_ULTRAHIGH_QUALITY
- Improved resilience against Docker Hub registry outages.
Changed
- Tweaked two H264 codec configuration presets targeted for Live encodings:
LIVE_LOW_LATENCY
andLIVE_HIGH_QUALITY
Fixed
- Smooth client manifest audio track names did not match the track names used in the server manifest in some cases.
- Fixed very verbose error messages in dashboard for specific muxing errors.
1.27.0
Added
- Dolby Vision - necessary metadata can be provided via sidecar file or by pointing to an embedded input stream.
1.26.0
Added
- Added possibility to add (black) padding sequences (
concatenation -> paddingBefore / paddingAfter
) between input streams inside a concatenation input stream - JS/TS API SDK:
- Created 10 examples showcasing the usage of our new JS/TS API SDK
1.25.0
Added
- Added integration for Encoder Key Exchange SPEKE for the muxings: WebM, FMP4, CMAF, TS, progressive TS, MP4
- Added support for segmented WebVTT for the HLS manifest.
Changed
Fixed
- Fixed a bug which caused the statistics label call to fail.
- Fixed a bug that produced invalid files if a TS muxing with HEVC was used.
1.24.0
Added
- Customers can now run encodings in their own Google Compute Engine (GCE) account.
- Added Conform filter which allows for small changes of the video frame rate where the playback speed of video as well as audio will be adapted instead of frame interpolation.
- Possibility to add a video language tag via the stream metadata (currently supported for MP4 muxings).
- JS/TS API SDK:
- After steady improvements and thorough testing over the last few months, we decided it's time to remove the alpha tag. There will be no further breaking changes.
- PHP API SDK:
- This is the first version of our PHP API SDK and new versions will be included in future releases. We would be happy to get early feedback.
Changed
- If upload of a DASH manifest fails for one output, we now do not skip other configured outputs.
- Improved the API documentation for the Scale filter.
- C# API SDK:
- Improved error messages to give more detail what went wrong.
- JS/TS API SDK:
- Improved logger interface
- Improved error messages to give more detail what went wrong.
Fixed
- Fixed generation of default Smooth manifests for Per-Title workflows.
- C# API SDK:
- Unknown enum values are now deserialized to null instead of causing an exception.
- Java API SDK:
- Fixed rare case where a network issue could lead to throwing a
FeignException
instead of aBitmovinException
.
- Fixed rare case where a network issue could lead to throwing a
- Python API SDK:
- Fixed serialization of enum lists.
1.23.0
Added
- Added dynamic scaling of watermarks with new properties
width
andheight
- Fail fast if more than one codec is specified for Per-Title encodings
- Fail fast if CencDrm is used together with Fair Play and
ivSize
is set toEIGHT_BYTES
- Added option to exclude region for WebVTT conversions (
ignoreRegion
) - Added option to auto detect interlaced content when using deinterlace filter (
autoEnable
) - Added SBR
signaling
to HE-AAC-V1 and HE-AAC-V2 - Add
cutoffFrequency
for AAC, AC3, EAC3
Changed
- JS/TS API SDK:
- The discriminator property of polymorphic models is now an enum.
- Model constructors can now also be called without parameters.
Fixed
- Default DASH manifest creation may fail when using WebM, DRM and Per-Title
- Default HLS manifest may have failed when only manifest name is set
1.22.0
Added
- Improved ramp-up phase for huge encoding batches
- Java API SDK:
- Created 10 examples showcasing the usage of our new Java API SDK
- JS/TS API SDK:
- All methods are now compatible with plain objects as well as class instances, which makes it easier to use our client in combination with Redux
- Python API SDK
- Extended error messages to show all relevant details at a glance
Fixed
- Support for watermark image URLs which have more than 255 characters
- Fixed issue where a PSSH value inside a PlayReady DRM configuration was not written to the smooth streaming manifest
- Fixed problem when using a default HLS manifest in common with a per title encoding including HLSv3 muxings
- JS/TS API SDK:
- Fixed (de-)serialization of polymorphic models, discriminator is now part of the typed models and of the serialized request body
1.21.1
Fixed
- Fixed an issue where the codec configuration level
encodingMode
was ignored for certain Per-Title encodings
1.21.0
Added
- WebVTT: Add optional
hh
for timestamps less than 1 hour (appendOptionalZeroHour
)
Fixed
- When using DASH On-Demand manifests and CC to VTT conversion, the resulting manifest might have an invalid
mediaPresentationDuration
- Fixed an issue where Webhook might not be fired for Manifest Finished event
- When using DASH On-Demand with multiple video representations the adaptation id might be not compliant
1.20.0
Added
- Improved the search capabilities of encodings and allow to search for labels
- Reduced delay for allowlisting new domains for a player license to max. 30 seconds
- Used encoding mode is now set in property
selectedEncodingMode
. This is especially useful when starting an encoding with encoding modeSTANDARD
- Used encoder version is now set in property
selectedEncoderVersion
. This is especially useful when starting an encoding with encoder versionBETA
orSTABLE
- Added property
priority
to order Smooth Tracks in the manifest - Java API SDK:
- Configuration option
headers
enables customization of HTTP headers sent with every request
- Configuration option
Changed
- JS/TS API SDK:
- Extended error messages to show all relevant details at a glance
- Renamed config option
additionalHeaders
toheaders
to be consistent with other API SDKs
Fixed
- Multiple video representations have not been added to the DASH manifest when using DASH.ON_DEMAND with progressive MP4
- When using
HLS_BYTE_RANGES
MP4 progressive muxing, the targetduration from audio and video playlist might have been off by 1 second - Java API SDK:
- Unknown enum values received from our API will now be deserialized to
null
instead of throwing an exception
- Unknown enum values received from our API will now be deserialized to
1.19.0
Added
- Allow searching for encodings by name (exact, startsWith)
- Made
externalId
for S3 role-based inputs and outputs optional - Added fail-fast when trying to create a DASH-Manifest fMP4 Representation without specifying the
type
- Reduced delay for allowlisting new domains for a player license to max. 1 minute
- Prevent rare occurences of encodings staying in QUEUED for an unexpected long time
- Reduced manifest creation errors because of eventual consistency problems
- JS/TS API SDK:
- Added exports for models
- Improved type support when constructing models
- Additional headers can be set during configuration
- Added lambda syntax for query parameters
- Python API SDK:
- Added Python 2 compatibility
- Added code documentation to improve usability of the client, especially when using Python IDEs
Changed
- Python API SDK:
- Changed package name from
bitmovin
tobitmovin_api_sdk
to prevent naming conflicts when using the old and new client simultaneously - Force keyword arguments rather than positional arguments when instantiating models
- Changed package name from
Fixed
- Fixed missing closed caption accessibility tags on adaptation sets for VoD DASH manifests
- Fixed default DASH manifest creation to only include supported muxing types
- Default value of an Input Streams
selectionMode
property is now set toAUTO
- Fixed error which caused that Live Encodings could not be started with UDP Multicast inputs
1.18.0
Added
- CEA-608/708 to Sidecar WebVTT
- Sidecar TTML to Sidecar WebVTT
- Added
variableMuxRate
,initialPresentationTimeStamp
andinitialProgramClockReference
to Broadcast TS muxing - Added generation of BIF output
- Added additional properties for
programNumber
,pmt
, andpcr
to TS muxing
Fixed
- Fixed serialization of date fields in the OpenAPI clients
- Handle response of empty body objects gracefully in all OpenAPI clients
- DotNet API SDK: enum values are now null by default
1.17.2
Fixed
- JavaScript Client: Fixed TypeScript to ES5
enum
transpilation
1.17.1
Fixed
- Go Client: Fixed serialization issue for empty body POST requests
1.17.0
Added
- Added parameter
interval
to the Thumbnails endpoint to create thumbnails every x seconds - Added validation for DRM and MP4 with
HLS_BYTE_RANGES_AND_IFRAME_PLAYLIST
manifest type - Added webhooks for manifest
Fixed
- Manifests that have been created using the Default Manifest endpoint can now be successfully retrieved by searching for
encodingId
1.16.0
Added
- Added endpoint to return all error codes and descriptions of the API
FRAME-RATE
andVIDEO-RANGE
can be added to an HLS stream by enablingforceFrameRateAttribute
/forceVideoRangeAttribute
- Added additional codec settings to VP9:
errorResiliencyEnabled
,clientBufferSize
,clientInitialBufferSize
,biasPct
,cpuUsed
,automaticAltRefFramesEnabled
,targetLevel
,rowMultiThreadingEnabled
Fixed
- Default manifests can now be used during the start of an encoding to create preview manifests
- Setters for the SDK clients have been missing documentation
1.15.0
Added
- Added support for Redundant SRT Input (
backupSrtInputs
) - Added single pass EBU-R128 Audio Normalization
- Added opacity option to watermarks (
opacity
) - Added support for AWS region
EU_WEST_2
- Added presets for H265 (
presetConfiguration
) - Improved output validation for Akamai MSL by checking if at least one manifest is on the same output as the muxings
Fixed
THREE_PASS
encodings with big input files might fail due an out of disk error
1.14.1
Added
- Property
mode
to the Dash manifest Add fMP4 representation call, which gives you more control over where segment templates are generated
1.14.0
Added
- Fail-fast when Per-Title minBitrateStepSize is <= 1.0
- Setup role-based S3 inputs and outputs with our API
- Reordered elements (QualityLevel and c elements) in our Smooth manifest to ensure playback on additional devices
- Flag
writeDurationPerSample
in fMP4 muxing to enable writing the duration per sample into the sample entry in the Track Fragment Run Box - Endpoint that returns error definitions of our encoding product
- Endpoint for (segmented) WebVTT sidecar files
1.13.1
Fixed
- HLS manifest can now be created containing both, Progressive TS and MP4 muxings
1.13.0
Added
- Object detection for encodings, that uses our new machine-learning technology
- CMAF muxing for Live and VoD workflows
- Get PSNR values per segment with our new QC Api
- Added ability to transfer sidecar files (like WEBVTT subtitles)
- New Output Akamai Media Services Live (MSL)
1.12.0
Added
- Introduced codec configuration presets for H264, H265 and VP9
- Added new Google regions:
ASIA_EAST_2
,ASIA_NORTHEAST_1
,ASIA_SOUTH_1
,ASIA_SOUTHEAST_1
,AUSTRALIA_SOUTHEAST_1
,EUROPE_NORTH_1
,EUROPE_WEST_2
,EUROPE_WEST_4
,NORTHAMERICA_NORTHEAST_1
,SOUTHAMERICA_EAST_1
,US_WEST_2
,US_EAST_4
- Added character encoding to SRT burn-in subtitles
- Enabled HMAC signatures on Webhooks
- Feature parity between webhooks and email notifications
- Fail-fast when Watermark filter image is not set
- Fixed failing Per-Title encodings for trial users, caused by the auto-created Watermark filter
1.11.0
Added
- Added
{rand_chars}
placeholder forsegmentNamingTemplate
andinitSegmentNameTemplate
to generate a random character sequence. This is especially useful when restarting a live stream and having storage / CDN caching enabled.
1.10.0
Added
- Added
sampleAspectRatioNumerator
andsampleAspectRatioDenominator
to Scale Filter
1.9.0
Added
- Implemented a route to create default manifest for encodings
- Added support to cancel queued encodings
- Improved error messages when putting video filters on audio streams
- Added fail-fast when adding manifest without configured output
- Added fail-fast for configuring multiple streams with MP4 muxing and DASH_ON_DEMAND manifest type is set
- Improved response time for manifest queried by encoding id
- Added fail-fast for H264+FairPlay+fMP4 as this combination could lead to unencrypted output
1.8.0
Added
- Added validation for unspported thumbnail file extensions
- Added validation for Broadcast TS muxings to check if the muxrate is below the sum of bitrates of the stream
1.7.0
Fixed
- HLS manifest creation might fail when using stream conditions where not all streams are ignored
1.6.0
Added
- Added support to add streams or thumbnails in parallel to a stream
- Added an endpoint to get the HLS media type
- Added fail fast when the
rate
of a video configuration is set to 0 (0 fps)
Changed
- Fixed an issue where the stream condition mode of a Broadcast TS muxing was not correctly propagated to the encoder
- Fixed an issue where the statistic endpoint returns null dates for live encodings
- Fixed an issue where the daily statistics endpoint returns an empty result when no start and end date was set
1.5.0
Added
- Added support to add streams or thumbnails in parallel to a stream
1.4.0
Added
- Added validation that audio filters may only be applied to audio streams
- Added validation that if AV1 is used in progressive WebM muxing, no other streams are allowed in that muxing
- Support for filtering when listing muxings for stream mode
Fixed
- Fixed an issue where the start encoding call fails when the PSSH of DRM was longer than 255 characters.
1.3.0
Added
- Added additional routes for live statistics to query events and streams separately
- Allow retrieval of encoding start information even when the encoding is not in
RUNNING
, but also inQUEUED
,FINISHED
orERROR
state
1.2.0
Added
- Added an endpoint for prewarming deployments on on-premise Kubernetes clusters
1.1.0
Added
- Support for CencDRM PSSH data greater than 255 characters
- Improved error message when adding invalid codec configurations
- Retrieve start encoding configuration after an encoding has been started
1.0.0
Added
- Check S3 and GCS access rights when creating the input / output
- Improved error message when adding invalid codec configuration settings
Updated over 1 year ago