- ts-ebml plugin: add support for v3.x (#716)
- Fix video.js v8 deprecation warnings (#707)
- Ignore click events for record indicator (#688)
- ffmpeg.wasm plugin: add support for v0.12.x (#708)
- Bump required version for:
- videojs-wavesurfer (3.10.0 or newer)
- webrtc-adapter (8.2.3 or newer)
- ts-ebml plugin: fix Safari issue with ts-ebml (#595, #581)
- Bump required version for:
- videojs-wavesurfer (3.9.0 or newer)
- webrtc-adapter (8.2.0 or newer)
- Add
convert
method andconvertAuto
option, allowing user to control start of converter process (#568) - Improve check in
removeRecording
(#575) - Bump required version for webrtc-adapter (8.0.0 or newer)
- Stop screen sharing on a microphone permissions error in
AUDIO_SCREEN
mode (#585)
- Fix stopping stream if it is active when using
getDevice
(#561) - Bump required version for:
- recordrtc (5.6.2 or newer) (#553)
- videojs-wavesurfer (3.7.0 or newer)
- webrtc-adapter (7.7.1 or newer)
- Fix controlbar flickering in Mobile Safari (#413)
- Fix hiding picture-in-picture button (#486)
- Fix stretched output for image-only mode when aspect ratio of player is not the same as camera media constraints (#511)
- Bump required version for videojs-wavesurfer (3.6.0 or newer)
- New ffmpeg.wasm converter plugin: convert recorded data into other audio/video/image file formats (#522)
- New opus-media-recorder plugin: provides cross-browser Opus codec support for various audio formats such as Ogg and WebM (#355)
- ffmpeg.js plugin is deprecated; use new ffmpeg.wasm plugin instead (#522)
- Add support for downloading converted data using
saveAs
(#506) - Add
formatTime
option andsetFormatTime(impl)
for replacing the defaultformatTime
implementation (#483) - Build using Webpack 5 (#514)
- Bump required version for videojs-wavesurfer (3.5.0 or newer)
- Fix issue with opus-recorder plugin (#519)
- Fix webpack externals configuration: it's no longer needed to use additional webpack configuration in React/Angular/Vue projects (#487, #493, #497)
- ffmpeg.js plugin: handle
abort
errors (#481) - Bump required version for:
- videojs-wavesurfer (3.3.0 or newer)
- webrtc-adapter (7.7.0 or newer)
- Add ability to grab waveform (audio-only) or video frame data using
exportImage
(#417) - Fix file extension for
video/x-matroska
mime-type (#464, #469) - Fix milliseconds in
formatTime
(#443) - Ask again for device permissions in Firefox when user cleared them manually (#468)
- Fix missing error handler for microphone permissions in audio/screen mode (#463)
- Move documentation to website (#472)
- Bump required version for:
- video.js (7.0.5 or newer)
- videojs-wavesurfer (3.2.0 or newer)
- recordrtc (5.6.1 or newer)
- Add compatibility for video.js 7.7.6 and newer (#465)
- Fix mime-type for lamejs plugin
Backwards-incompatible changes (when upgrading from a previous version):
- Configuration for microphone/audio-only has changed (due to videojs-wavesurfer upgrade):
- Specify
backend: 'WebAudio'
instead ofsrc: 'live'
- Enable the wavesurfer.js microphone plugin using the
plugins
object of thewavesurfer
plugin config
- Specify
- Fix autostop error when max file size was reached (#448 by @Eduardo-Lpz)
- Bump required version for recordrtc to 5.5.9
- Support constraints when recording screen-only or audio-screen (#440)
- Prevent monkey-patched video.js
play
method being used by other video.js players on the same page (#437)
- New options for image-only mode to change the data type of the
player.recordedData
object:imageOutputQuality
: number between 0 and 1 indicating the image quality (default: 0.92)imageOutputType
: either'blob'
or'dataURL'
(default)imageOutputFormat
: image format (default:image/png
)
- Trigger
Event.RETRY
for image-only (#403 by @vendramini) - Image-only: prevent blank image at startup (#406)
- Add
style
andsass
entries topackage.json
- Specify non-minified videojs-record in
main
entry ofpackage.json
- Check for
pipToggle
(#411) - Bump required version for videojs-wavesurfer to 2.11.0 or newer and reject videojs-wavesurfer version 3.0.0 or newer until that release is available and supported
- New ffmpeg.js plugin: convert recorded data into other audio/video file formats in the browser (#201)
- Support for capturing screen + audio (#385 by @tony)
- Support for specifying third-party plugin settings using the
pluginLibraryOptions
option (#383) - New options:
videoBitRate
andvideoFrameRate
(currently only used in the webm-wasm plugin) - New event:
startConvert
(used in ts-ebml and ffmpeg.js plugins) (#201) - Support for video.js Picture-In-Picture API (available in video.js >= 7.6.0). Tries
to use
PictureInPictureToggle
, otherwise fallback to own implementation (#381) - Fix
RecordRTC.MediaStreamRecorder
import when using thetimeSlice
option - Examples: add
timeSlice
example demonstrating use oftimestamp
event - Bump required version for videojs-wavesurfer to 2.9.0 or newer for wavesurfer.js 3.0.0 support
- Bump required version for recordrtc to 5.5.8
- Bump required version for webrtc-adapter to 7.2.8 or newer
- Add missing video.js imports for plugins (#378)
- Add
setVideoInput(deviceId)
for changing the video input device (#369) - Add
setAudioInput(deviceId)
for changing the audio input device (#374) - Examples: use dark theme when possible
- Add support for keyboard hotkeys (requires video.js 7.5.0 or newer) (#339)
- Trigger error when
getUserMedia
orgetDisplayMedia
support is missing (in Chrome iOS for example) (#353) - Improve pause/resume accuracy with monotonic clock
- Make sure recorded data is garbage collected
- Bump required version for videojs-wavesurfer to 2.8.0 for wavesurfer.js fixes
- Examples: add
playsinline
attribute tovideo
element for Safari (#353)
- Fix RecordRTC import (#345)
- Update Safari
AudioContext
workaround in examples (#335)
- Support for Picture-in-Picture during playback and recording. Allows users to record and playback in a floating window (always on top of other windows) while interacting with other sites or applications (#340)
- New webm-wasm plugin: create webm files using libwebm (compiled with WebAssembly) in the browser (#321)
- Ability to change label of record indicator (#336)
- Move event types to separate class (#341)
- Fix suspended wavesurfer.js
AudioContext
in Chrome (#335)
Backwards-incompatible change (when upgrading from a previous version):
- The
vmsg
plugin, introduced in 3.3.0, now requires aaudioWebAssemblyURL
option, previously calledaudioWorkerURL
. Use the newaudioWebAssemblyURL
option instead of the previousaudioWorkerURL
. Note this only applies to thevmsg
plugin, other plugin options have not changed.
- Add missing import, fixes 'videojs is not defined' error (#333)
- Bump required version for webrtc-adapter to 7.2.0 or newer
- vmsg plugin: add
destroy
- Fix ES export syntax for
Record
(#330 by @extronics) - Bump required version for videojs-wavesurfer to 2.7.0 for
playToggle
fixes - Fix hiding
playToggle
control
- Support video recording in Safari (Technology Preview 73 or newer) (#181)
- Bump required version for recordrtc to 5.5.3 for Safari video recording support (#320)
- Add example for changing video source (#223)
- Add ability to permanently hide custom UI elements (e.g.
recordToggle
)
- New ts-ebml convert plugin: creates seekable webm files by injecting metadata like duration (#317)
- New vmsg audio plugin: produces MP3 using a WebAssembly version of the LAME library (#287)
- Fix issue with
srcObject
(#312) - Fix shim for screen capture (#318)
- Fix duration display for video.js 7.4.x (#316)
- Bump required version for recordrtc to 5.5.0 for
URL.createObjectURL
fixes (#315) - Simple upload example: make sure upload directory exists (#314)
- Allow hiding time controls
- Improve
destroy
method (#310) - Bump required version for recordrtc to 5.4.9 for bug fixes
- Add support for screen capture (#289)
- Add
maxFileSize
option to limit the maximum file size of a recorded clip, and stop recording when that limit is reached (#234) - Add
msDisplayMax
option to control display of time format (#188) - Documentation: add Angular and Vue.js wiki pages (#274, #283)
- Bump required videojs-wavesurfer version to 2.6.2 for microphone support in the MS Edge and Safari browsers (#294)
- Fix issue with
timeSlice
option when resetting the player (#300 by @GDIBass) - Examples: add Safari/Edge browser workarounds for audio-only recording (#295)
Backwards-incompatible changes (when upgrading from a previous version):
- In older versions a
player.recordedData.video
would be available in Chrome when recording audio and video. This is removed andplayer.recordedData
is always aBlob
across all recording types and browsers now (#269) - Upgraded to video.js/font 3.0.0: removed support for IE8, 9, 10, and
Android < 4.4 by removing support for the
eot
font file (#279)
autoMuteDevice
option to turn off the device between recordings (for privacy reasons) (#157)- Fix lamejs plugin (#265)
- Fix
RecordRTCEngine
import in React apps (#263) - Fix recording multiple times in lamejs plugin (#265)
- Ability to pass an options object to the
loadOptions
method (#254 by @tomasdev)
- Bump required version for videojs-wavesurfer to 2.5.0 to fix clashes with regular video.js players loaded on the same page (#235)
- Fix Safari support in audio plugins
- Add plugin style
vjs-record
and prefix all custom plugin styles with this selector. This should prevent clashes with regular video.js players loaded on the same page (#235) - Compile SCSS into CSS using webpack
- Move
font
directory tosrc/fonts
- Use
grabFrame
for image capture on Chrome (#225)
- Add simple upload example for node.js and python (#233)
- Fix misaligned text in record indicator on Chrome (by @ikbensiep)
- Package library using webpack 4 (#226)
- Add unit tests using karma/webpack/jasmine (#226)
- Bump required version for videojs-wavesurfer to 2.3.2 for wavesurfer destroy fixes
- Fix issue with
ImageCapture.takePhoto
on Chrome (#225)
- Bump required version for videojs-wavesurfer to 2.2.1 for compatibility with video.js 6.7.x (#208)
- Ability to specify bitrate setting in lamejs plugin (#213)
- Add missing file info for blobs created with
timeSlice
option (#206) - Use the new
lastModified
property for generated blobs,lastModifiedDate
is deprecated
- Support for selecting audio output device (#16)
- Bump required version for videojs-wavesurfer to 2.2.0 for
setAudioOutput
- Added example for audio input selection (#13)
- The opus-recorder plugin requires v4.0.0 or newer now: older versions are no longer supported (#204)
- Fix compatibility with video.js 6.6.0 (#198)
- Bump required version for videojs-wavesurfer to 2.1.4
- Document how to stream upload to server using timestamp event (#176)
- Release stream tracks and close
audioContext
on stop recording in the lamejs plugin (#197 by @mafflin)
- Fix issue with blinking time display (#175)
- Bump required version for videojs-wavesurfer to 2.1.2
- Bump required version for recordrtc to 5.4.6 for access to
RecordRTC.version
number
- Fix Windows build (#186)
- Bumped required version for videojs-wavesurfer to 2.0.3
- Fix issue with copying fonts during build (#185)
- Bump required version for recordrtc to 5.4.5 for improved Safari 11 support (#181)
- Fix
MRecordRTC
reference error (#177)
- Refactor plugin using ES6 (#167, #149)
- video.js 6.0 or newer is now required: older versions are no longer supported
- videojs-wavesurfer.js version 2.0.1 or newer is now required: older versions are no longer supported
- RecordRTC.js version 5.4.4 or newer is now required: older versions are no longer supported
- New dependency: webrtc-adapter (version 5.0 or newer) is now recommended;
the old WebRTC (
getUserMedia
) cross-browser support code has been removed - Support for the video.js
fluid
option for responsive layout (#166) - Replace usage of deprecated
URL.createObjectURL(stream)
(#169) - Added React example (#33)
Backwards-incompatible changes (when upgrading from a previous version):
- Use
player.record()
instead ofplayer.recorder
to interact with the plugin, e.g.player.record().destroy()
- Bumped required version for videojs-wavesurfer to 1.3.6 to restrict the wavesurfer.js dependency to anything lower than 2.0.0
- Bugfix: properly update current time and duration display components
- Get blobs after specific time-intervals using the
timestamp
event andtimeSlice
option (#3) - Bump required version for recordrtc to 5.4.2 for
timeSlice
support - Fix CSS styling for video.js 6.0 and newer (#149)
- Take into account async stream loading before playing media on the Android version of the Chrome browser (#154 by @kperdomo1)
- Bump required Chrome version to 60 or newer for ImageCapture support (#153)
- Exclude video.js 6.2.0 or newer until video.js module export issue is resolved (#149)
- Use video.js AMD module name (#123, #136)
- Bump required version for videojs-wavesurfer to 1.3.3 for the correct video.js AMD module name
- Use
videojs.registerPlugin
in video.js 6.0.0 and newer - Bumped required version for videojs-wavesurfer to 1.3.2 to support video.js 6.0.0 and newer
- Added
pause
andresume
methods (#61) - Added
getDuration
andgetCurrentTime
methods (#129) - Added
progressRecord
event that fires continuously during recording (#128) - Added support for
MediaStreamTrack.takePhoto
for image-only mode (#96) - Plugin fixes for opus-recorder 0.5.0
- NPM package now includes
dist
directory with minified files - Fix for ignoring missing player elements (#118 by @stragari)
- Bumped required version for videojs-wavesurfer to 1.3.1 for
getDuration
andgetCurrentTime
methods
- Include CSS file for bower (#107 by @abrarahmedbcg)
- Added
saveAs
method that shows a browser dialog window where the user can store the recorded media locally (#97)
- Added
audioMimeType
andvideoMimeType
settings for H264 support (#92) - Listening for
tap
events to support touch on mobile (#71) - Bumped required version for videojs-wavesurfer to 1.2.6 and wavesurfer.js to
1.2.0 for access to their
exportImage
method (#91)
- Added
reset
method to reset the plugin without destroying it (#73) - Releasing existing object URLs (#70)
- Added
enumerateDevices
API (#16) - Preventing invalid or negative value in
formatTime
(#46 by @zang)
- Added compatibility for single file recording introduced in Chrome 49+ (by @zang)
- Preferring
navigator.mediaDevices.getUserMedia
instead of deprecatednavigator.getUserMedia
if available - Stop using deprecated
MediaStream.stop()
; useMediaStreamTrack.stop()
instead - Added
audioRecorderType
andvideoRecorderType
options - Bumped required version for videojs-wavesurfer to 1.1.0, wavesurfer.js to 1.0.57 and recordrtc to 5.2.9 for microphone and Chrome fixes
- Fixes for latest release of the libvorbis.js plugin (1.1.1). This also
removes the
audioModuleURL
option - IE8 font fixes
- Moved support for other audio recorders to separate source files
- Support for Opus using opus-recorder (#43)
- Support for MP3 using lamejs (#40)
- Support for recorder.js (#33)
- New settings:
audioChannels
,frameWidth
andframeHeight
(#35) - Disabled video.js
loop
option permanently (#42) - Disabled native controls for better Firefox mobile compatibility (#19)
- Added CSS for controlbar on mobile in examples (#19)
- Improved check for
getUserMedia
browser support (#38 by @xlc) - Close
AudioContext
on stop in libvorbis.js plugin (#36, #37 by @xlc) - Required version for RecordRTC is 5.2.7 now
- Required version for videojs-wavesurfer is 1.0.6 now
- Required version for wavesurfer.js and wavesurfer.microphone.js is 1.0.50 now
- Ability to add audio and video constraints (#30 by @alsar)
- Added filename and timestamp to recorded file object (#29)
- Added upload examples for the jquery.fileupload and Fine Uploader libraries (#29)
- Fixed wrong module require for browserify (#28 by @alsar)
- Added animated recording indicator (by @ikbensiep)
- Fixed
destroy
- Fixed AMD/Node/browser global dependency for video.js
- Support for video.js 5
- Dropped support for video.js 4.x
- Added translations for Afrikaans, German, Spanish, Finnish, Frisian, French, Galician, Italian, Portugese, Russian and Swedish
- Bumped minimum version for wavesurfer.js (1.0.44) and videojs-wavesurfer (0.9.9) for microphone updates (#12)
- Fixed stop/getDevice in audio-only mode (#12)
- Make sure bower and npm only download video.js v4.x (#15) because v5.0 is not supported yet (#6)
- Add
stopDevice
for disabling the webcam/microphone device (#12) - Do something about new mediastream deprecation warnings in Chrome 45 (#12)
- Fixed issue with missing
isChrome
- Support for libvorbis.js in audio-only mode (#8)
- Set default audio sample rate to 44100 (#7)
- Examples fixes: wavesurfer changed domain name to wavesurfer-js.org
- Added support for animated GIF recordings (#2)
- Both audio and video streams are now available when recording audio/video simultaneously in the Chrome browser (#4)
- Audio playback now works when recording both audio and video in the Chrome browser (#4)
- Fixed
debug
option
- Removed duplicate
stopRecord
event trigger for image-only mode
- Switched to
MRecordRTC
to enable recording audio/video blobs (in Firefox >= 29 only at time of this release) - Hide fullscreen button in image-only example
- Added support for images (#1)
- Documentation fixes
- Added
destroy
method for cleaning up - Added
debug
option to control console logging (in RecordRTC)
- Compatibility fixes for Video.js 4.12.0
- Added Dutch translation
- Disable controls during waveform rendering
- Added
deviceReady
event - Documentation fixes
- Bugfixes
- Initial release