Version 4.4

The release notes will tell you what’s new in each version, and any changes that you must be aware of when upgrading. For reference, Vidispine ticket numbers are printed as (#1234).



Security notice

  • Fix for CVE-2016-3714.

    Although it is not likely that Vidispine systems are affected, as Vidispine does its own file type checking, the updated transcoder contains the suggested fix to the ImageMagick policy.xml (#2331).

Bug fixes

  • PSQLException when deleting item with large metadata (#2330).
  • Slow mime-type check causing steps to disappear and retry (#2332).
  • NPE when retrieving empty access control list (#2288).
  • Collection metadata update with skipForbidden=True allows update of read-only fields (#2340).

Transcoder fixes

  • Fix for calculation of burnt-in timecode for QuickTime source sources contains EDLs (#2334).

  • Properly handle MPEG-2 with separate field encoding (#2333).

    For MPEG-2 interlaced video where fields are encoded separately, and stored in MPEG transport stream, use the following setting in the transcode preset document:


    This will be the default in Vidispine 4.6.




  • The MatrixStore SDK has been updated from to This fixes an exception when reading XML files from MatrixStore (#2246).

Bug fixes

  • Jobs not running on MySQL (SQLGrammarException) (#2245).
  • Slow update of user groups (#2272).
  • Missing object metadata in MatrixStore (MXFS_FILENAME_UPPER) (#2271).
  • SFTP file worker connection leak on file delete (#2249).
  • IllegalArgumentException on item list to Azure (#2254).
  • Moving a metadata timespan breaks references (#2218).
  • Slow access DOT graph for items in a large amount of collections (#2251).
  • No thumbnails created for certain files with an EDL (#2273).
  • No document metadata for PDF files when transcoding on import (#2257).

Server fixes

  • vidispine-admin failing if database URL contains port number (#2266).

Agent fixes

  • Incorrect exit code from vidispine-agent-admin (#2267).

Transcoder fixes

  • Support image sharpening (#2278).
  • Use DTS as fallback for missing PTS values (#2259).
  • Long MediaInfo times for fragmented files (#2277).
  • Handle WAV file with metadata of odd number of bytes (#2258).



Bug fixes

  • Slow listing of files on Azure (#2187).
  • Video misidentified as image/cgm (#2185).
  • Export transcode failure should fail export (#2183).
  • File removed from Solr on shape delete with keepFiles=true (#2212).
  • NPE on item reindex on thumbnail read error (#2221).
  • Don’t use IN subquery statements with MySQL (#2177).
  • Be able to skip indexing of timed metadata (#2212).
  • POST /storage/(storage-id)/file/data not creating file when using segment files (#2171).
  • NPE instead of 404 for API/storage/{external-id}/file/{id} requests (#2179).
  • NPE on DB migrate when correcting column nullable status (#2190).
  • Files on local file system not found on Windows (#2238).
  • Schema file transcoder.xsd missing from API (#2217).
  • Make shape information available to conform presets (#2189).
  • Temporary segment files not deleted (#2239).
  • External transcode completing too early (#2241).
  • Cannot update items’ metadata via library and JSON (#2216).

Server fixes

  • APInoauth application.wadl missing from vidispine-server (#2214).

Agent fixes

  • Incorrect service status from vidispine-agent-admin on CentOS 6 (#2096).

Transcoder fixes

  • Insecure parsing of m3u4 files (#2222).
  • Shape deduction crash on invalid QuickTime file (#2180).
  • Make transcoder fail on transcode of truncated QuickTime files (#2220).
  • Transcoder crash on very short clip (#2223).




  • Transcode jobs are now more resilient to connection errors. Use the maxTranscoderUnavailableTime property to control how long a transcoder may be unreachable before the job should fail (#2166).
  • Use the bulkyMetadataKeysToIgnore property to avoid saving unused analysis results from analyze jobs in the bulky metadata (#2165).
  • Support for marking a file as a duplicate of another (#2129).
  • The thumbnail format used by the transcoder is now exposed as a setting (#2128).
  • How frequently the transcode status in a job is updated can be configured using the transcoderNonblockingStatusInterval property (#2164).

Amazon S3 improvements

  • Use the sseAlgorithm parameter to set the x-amz-server-side-encryption header for S3 object upload requests. See Amazon S3 Server-Side Encryption for more information (#2103).

Transcoder improvements

  • The transcoder will do a further analysis of GOP timecodes in MPEG video. If the first GOPs are not contiguous, the startTimecode element in the videoComponent of the shape is not present (#2176).
  • The transcoder updates the GOP timecodes in MPEG video according to the TranscodePresetDocument of the shape-tag. This functionality also works when only remuxing (#2141).
  • Ability to control GOP structure based on scene changes, see sceneChangeThreshold. Mostly used to disable scene change detection (#2160).
  • Ability to disable writing of time code track, see noTimeCodeTrack (#2143).

Bug fixes

  • No delay before job step retry if the asynchronous part of the step failed (#2161).
  • The population of the __representativeThumbnails field would slow down collection metadata retrieval (#2119).
  • Storage rule with a single <not> entry not honoured (#2158).
  • All shape components not deleted on placeholder import failure (#2163).
  • Cannot rename file on S3 (#2111).
  • Shape created on wrong storage when doing raw shape imports and using the tag parameter (#2167).
  • NPE when evaluating task groups for AUTO_IMPORT jobs (#2125).
  • Signiant transfers failing for large files (#2152).
  • Cannot delete group used in many ACLs on GlassFish (#2144).
  • Username parameter ignored for bulk item exports (#2137).
  • Rejected shape import requests causing empty jobs to be created (#2115).
  • Configurable exclusive job step wait time. See jobExclusiveStepMaxWait (#2116).
  • Export job failing to find and copy file created from transcode step (#2106).
  • List item jobs not writing directly to S3 (#2120).
  • List item jobs not finishing when listing by group (#2108).
  • No thumbnails created for MTS files (#2107).

Transcoder fixes

  • Transcoder fails to read from HTTPS (#2162).
  • Transcoder crash on aborted jobs (#2159).
  • Transcoder stuck on broken PDF (#2122).
  • Add option to fail if frame cannot be decoded (#2124).
  • Incorrect scaling of posters (#2123).



Vidispine server agent

Support for the Vidispine Server Agent (VSA), a bundle of an agent for on-premise file storages and the Vidispine transcoder (#1806).

  • Enables cloud deployments of Vidispine while keeping essence in the original place.
  • VSA is available both for Ubuntu/Debian and CentOS/RedHat releases. See Vidispine Server Agent on how to install the VSA packages and configuration.

Amazon S3 improvements

  • Amazon S3 file notifications are now supported, making it possible to have Amazon push file event notifications to Vidispine instead of having Vidispine poll buckets on S3 (#1949).

    See S3 Event SQS Notifications on how to set up the Amazon SQS queue, configure S3 event notifications and connect the queue to a storage.

  • Buckets in Beijing and Frankfurt are now supported as the latest AWS SDK is now in use which supports the signature version 4 signing process (#1712).

  • The region and endpoint can be specified when configuring a storage. This is required when using buckets in the two new regions (#2040).

Transcoder discovery

Transcoders can be automatically discovered via either DNS or HTTP. The former allows integration with DNS servers and services such as Amazon Route 53 and Consul (#2092).

<?xml version="1.0"?>
<ResourceDocument xmlns="">

Transcoder sharing

Unexpected transcoder license errors have been an issue in the past when one or more Vidispine instances have been connected to the same transcoder. This is no longer an issue as the transcoder will respect the license of each instance (#2051).

See Using multiple transcoders on how to set this up.

Task groups

Task groups are a new entity that pairs an entity with a resource according to some rule. In this release these can be used to control the transcoders that should be used for certain types of jobs, for example to enforce that R3D jobs must use the transcoder supporting hardware decode of R3D, or to reserve some transcoders for high priority jobs (#2094).

<TaskGroupDocument xmlns="">
  <transcoder id=”VX-1”/>
  <transcoder id=”VX-2”/>

Audio waveforms

The Shape analysis now also store information that can be used to create an “audio waveform”. After the analysis has been made, the waveform information is available either as numerical values or image (PNG, one image per channel) (#2039).


Other features

  • Support for OAuth 2.0 bearer-token authentication (#1918).
  • More efficient online check of S3 buckets(#2073).
  • Ability to analyze a shape with multiple files (#2020).
  • Ability to transcode directly into another item (#2044).
  • Ability to add multiple overlays in same transcode profile (#2061).

Bug fixes

  • Not able to proxy files in sequence render jobs (#2026).
  • Conform job doesn’t support audio mappings in preset (#2033).
  • Exponential backoff for repeatedly failing services to prevent exhaustive logging (#2070).
  • Deadlock in jobs would cause the job executor to shut down and prevent job execution until job gets marked as DISAPPEARED and later restarted (#2067).
  • FTP storage to empty directory does not work (#2062).

Transcoder fixes

  • Media check for .m2v files is time consuming (#2066).
  • Transcoding from 23.976 FPS transport streams renders output out of sync (#2064).

Upgrading from 4.3

  • Solr: No changes to the documents. Re-indexing is not required.
  • The property indexCollectionItemOrder is now set to false by default. Set it to true before upgrading if you rely on the old behaviour.
  • The transcode preset script is now also evaluated for conform jobs. The difference compared to transcodes is that the shape is empty. If you use the same preset for both transcodes and conforms, then make sure that the script verifies the existence of the components of the shape before using them to avoid null pointer exceptions from the script.