Backwards incompatible changes: 0
Bug fixes: 16
New features: 4
Documentation changes: 3
Other changes: 0
Zencoder optimization for Amazon S3 and Rackspace Cloud Files users
A new setting has been added to the Zencoder settings screen in the Advanced fieldset: Location for Zencoder output. Using this setting, you can allow Zencoder to upload the videos and thumbnails directly to Amazon S3 or Cloud Files. Usually, this is much faster than using the Zencoder temporary storage facility, but in the case of Amazon S3, this requires giving Zencoder permission to write to your bucket, see .
FFmpeg: Support for flvtool2 and qt-faststart
flvtool2 and qt-faststart optimize flv and mp4 files respectively in order to allow seeking in files (ie.: jumping to a certain spot in the video without needing to download the entire video). qt-faststart is usually installed together with FFmpeg, while flvtool2 is a separate Ruby program. Setup the paths to these executables in the Helpers section of the FFmpeg settings screen and they will be executed automatically for your FLV and MP4 presets.
Improved scheduling settings and behavior
Various updates have been done on the video transcoding scheduling system:
- The video_scheduler.php script has been update so the --site parameter allows any hostname to be passed. In this way, this script can be used when your site is installed in
- The "Cron Settings" tab in the Video module has been renamed to "Scheduling".
- When using Drush or video_scheduler.php to transcode videos, the video jobs are correctly marked as "queued", preventing large videos from being transcoded twice or more in parallel.
See: #1673378: Video Queue over lap when NOT using Drupal's built-in cron.
- The functionality of the Video transcode timeout setting has been improved. It now determines when a transcode is marked as failed when it has been transcoding for a long time. This can happen when the transcoder crashes by entering an infinite loop or some other kind of extremely long operation. The default value is 10 minutes or the previous value, if that one was higher. If you transcode very long videos or videos with a high quality, increase this value.
- The Video queue timeout setting has been added. It allows you to requeue a video automatically when it has been marked as queued too long. This happens when the queue processor (cron, Drush, video_scheduler.php) crashes and leaves some videos in the queued state. After the timeout period has expired, the video status will reset to pending and the video will be transcoded by the next job. The default value is 60 minutes.
See: #1692002: Videos getting stuck in VIDEO_RENDERING_ACTIVE status rendering active
Video quality setting functional for FFmpeg
Previously, the Video quality preset setting did not have influence on FFmpeg transcodings. Since 2.8, it controls the FFmpeg
-qscale parameter. If you suddenly notice a degrated FFmpeg transcoding quality, check your presets and set this setting to a higher value. If your files are suddenly much larger than they normally are, decrease the quality value.
Rules events when using Zencoder
Previously, the rules events
video_failed were fired when the transcoding job was sent to Zencoder instead of when the postback was received. This behavior is fixed in 7.x-2.8, so you can make a Rule that publishes a node when the video is transcoded.
When you intend to use FFmpeg to transcode videos, make sure your FFmpeg installation handles all the file formats before installing the module. Linux distributions using precompiled binaries, such as Ubuntu, usually do not provide the best compile options and it is advised to compile FFmpeg yourself.
The following guides will help you to get a good FFmpeg installation:
- Ubuntu: FFmpeg compilation guide
- Ubuntu: guide to enhance your FFmpeg installation using precompiled packages
- Gentoo: make sure to setup the right USE flags before installing
- Windows: Windows packages
List of changes
Backwards incompatible changes since 7.x-2.7:
There were lots of changes in the internal Video module classes. If you have written code that interacts with the Video module internals directly, please test the update first.
Bug fixes since 7.x-2.7:
- #1779022 by Jorrit: Fixed notice "Undefined index: description in video_preset_admin_settings()"
- #1698046 by Jorrit: Fixed Rules events not triggering properly for Zencoder.
- #1543182 by Fonant: Fixed video quality setting not being used by FFmpeg.
- #1751560 by aasarava: Fixed file deletion.
- #1745008 by Jorrit: Fixed entity cache not being cleared after conversion using cron, drush or video_scheduler.php.
- #1673378 by Jorrit: Fixed videos not marked as queued when using drush or video_scheduler.php.
- #1739642 by harryzhxu: Fixed method of determining video player by looking at the URI extension instead of filename extension, which can be different.
- #1693550 by Jorrit: Fixed hiding the preview thumbnail when thumbnail style is selected.
- #1734714 by Lev, Jorrit: Fixed playing files with non-lowercase extensions.
- #1712406 by Jorrit: Added support for relative temporary directory paths.
- #1718242 by jpstrikesback: Fixed entity not updating after Zencoder postback when using Entity Cache.
- #1719360 by Jorrit: Fixed two pass encoding for Ogg Theora and WebM.
- #1721282 by Jorrit: Fixed Zencoder postback for Field Collection entities: call to entity_save() fixed, uid for thumbnail now retrieved from output file instead of entity
- #1719062 by Jorrit: Fixed the SWF Flash player.
- #1699062 by Jorrit: Fixed compatibility with "ffmpeg -i" return format for old FFmpeg versions.
- #1700440 by Jorrit: Added measures to prevent repeating Zencoder "No response was received because the notification timed out' message. The first time, this message may still be returned, but the second time the notification will succeed.
Enhancements since 7.x-2.7:
- #1761800 by michael.k: Updated the list of default dimensions.
- #1776272 by Jorrit: Added support for newer FFmpeg versions.
- Sort FFmpeg codecs alphabetically.
- #1762732 by michael.k: Fixed some default video sizes in JS, PHP and CSS.
- Trim the postback control value to prevent distortions caused by new lines in PHP files.
- #1691992 by Jorrit: Improved the video_scheduler.php script by allowing any site to be set using --site and checking for more error situations.
- #1693650 by Jorrit: Fixed confirmation message when using Convert on save.
- Improved the preset dialog by displaying warnings when the currently selected extension or codec are no longer valid.
- Improved the preset interface by allowing default presets to be reverted and making it more clear which module provides a default preset.
- Pass the entity and entity type to the Video.js player.
- #1611904 by Jorrit: Added a checkbox to disable validating the Zencoder Postback URL.
- #1611904 by Jorrit: Improved message that is displayed when the Zencoder postback handler is viewed using a GET request.
- Fixed pointless indentation of the file upload field.
New features since 7.x-2.7:
- #1492296 by Jorrit: Added support for avconv binaries instead of FFmpeg.
- #1692002 by Jorrit: Fixed videos getting stuck in the queued or active state by marking active videos as failed and queued videos as pending after a configurable amount of time.
- #1462162 by Jorrit: Added post processing of MP4 files using qt-faststart and FLV files using flvtool2, removed Metadata tab.
- Added the ability to have Zencoder upload the output videos and thumbnails directly to your Amazon S3 bucket or Rackspace Cloud Files container.
Documentation changes since 7.x-2.7:
- #1765810 by Jorrit: Added note to field settings screen that the private file system is incompatible with iOS unless the X-Sendfile module is used.
- #1756430 by michael.k: Fixed some English texts in the field system.
- Update readme with a couple of frequently encountered FFmpeg errors
Other changes since 7.x-2.7: