UNPKG

@e10in/videojs-record

Version:

A video.js plugin for recording audio/video/image files.

630 lines (394 loc) 20 kB
# videojs-record changelog ## 4.5.0 - unreleased - Improve check in `removeRecording` (#575) ## 4.4.0 - 2021/04/05 - 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) ## 4.3.0 - 2021/03/08 - 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) ## 4.2.0 - 2021/02/05 - 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 and `setFormatTime(impl)` for replacing the default `formatTime` implementation (#483) - Build using Webpack 5 (#514) - Bump required version for videojs-wavesurfer (3.5.0 or newer) ## 4.1.1 - 2020/11/01 - Fix issue with opus-recorder plugin (#519) ## 4.1.0 - 2020/08/11 - 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) ## 4.0.0 - 2020/05/20 - 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 of `src: 'live'` - Enable the wavesurfer.js microphone plugin using the `plugins` object of the `wavesurfer` plugin config ## 3.11.0 - 2020/03/02 - Fix autostop error when max file size was reached (#448 by @Eduardo-Lpz) - Bump required version for recordrtc to 5.5.9 ## 3.10.0 - 2020/02/11 - 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) ## 3.9.0 - 2019/12/29 - 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` and `sass` entries to `package.json` - Specify non-minified videojs-record in `main` entry of `package.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 ## 3.8.0 - 2019/07/16 - 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` and `videoFrameRate` (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 the `timeSlice` option - Examples: add `timeSlice` example demonstrating use of `timestamp` 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 ## 3.7.1 - 2019/05/30 - Add missing video.js imports for plugins (#378) ## 3.7.0 - 2019/05/27 - 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 ## 3.6.0 - 2019/04/02 - Add support for keyboard hotkeys (requires video.js 7.5.0 or newer) (#339) - Trigger error when `getUserMedia` or `getDisplayMedia` 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 to `video` element for Safari (#353) ## 3.5.1 - 2019/03/06 - Fix RecordRTC import (#345) - Update Safari `AudioContext` workaround in examples (#335) ## 3.5.0 - 2019/02/28 - 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 a `audioWebAssemblyURL` option, previously called `audioWorkerURL`. Use the new `audioWebAssemblyURL` option instead of the previous `audioWorkerURL`. Note this only applies to the `vmsg` plugin, other plugin options have not changed. ## 3.4.3 - 2019/02/17 - Add missing import, fixes 'videojs is not defined' error (#333) - Bump required version for webrtc-adapter to 7.2.0 or newer ## 3.4.2 - 2019/02/10 - vmsg plugin: add `destroy` ## 3.4.1 - 2019/02/09 - 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 ## 3.4.0 - 2019/02/04 - 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`) ## 3.3.0 - 2019/01/10 - 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) ## 3.2.1 - 2019/01/08 - Fix issue with `srcObject` (#312) - Fix shim for screen capture (#318) ## 3.2.0 - 2019/01/07 - 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) ## 3.1.0 - 2018/12/13 - Allow hiding time controls - Improve `destroy` method (#310) - Bump required version for recordrtc to 5.4.9 for bug fixes ## 3.0.0 - 2018/11/29 - 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 and `player.recordedData` is always a `Blob` 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) ## 2.4.1 - 2018/08/03 - `autoMuteDevice` option to turn off the device between recordings (for privacy reasons) (#157) - Fix lamejs plugin (#265) ## 2.4.0 - 2018/07/31 - Fix `RecordRTCEngine` import in React apps (#263) - Fix recording multiple times in lamejs plugin (#265) ## 2.3.2 - 2018/07/24 - Ability to pass an options object to the `loadOptions` method (#254 by @tomasdev) ## 2.3.1 - 2018/06/04 - 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 ## 2.3.0 - 2018/05/15 - 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 to `src/fonts` ## 2.2.2 - 2018/05/11 - Use `grabFrame` for image capture on Chrome (#225) ## 2.2.1 - 2018/05/09 - Add simple upload example for node.js and python (#233) - Fix misaligned text in record indicator on Chrome (by @ikbensiep) ## 2.2.0 - 2018/05/07 - 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 ## 2.1.3 - 2018/04/08 - Fix issue with `ImageCapture.takePhoto` on Chrome (#225) ## 2.1.2 - 2018/02/25 - 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) ## 2.1.1 - 2018/02/19 - Add missing file info for blobs created with `timeSlice` option (#206) - Use the new `lastModified` property for generated blobs, `lastModifiedDate` is deprecated ## 2.1.0 - 2018/02/10 - 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) ## 2.0.6 - 2018/01/15 - 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) ## 2.0.5 - 2017/12/30 - Release stream tracks and close `audioContext` on stop recording in the lamejs plugin (#197 by @mafflin) ## 2.0.4 - 2017/12/13 - 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 ## 2.0.3 - 2017/11/30 - Fix Windows build (#186) - Bumped required version for videojs-wavesurfer to 2.0.3 ## 2.0.2 - 2017/11/15 - Fix issue with copying fonts during build (#185) - Bump required version for recordrtc to 5.4.5 for improved Safari 11 support (#181) ## 2.0.1 - 2017/11/10 - Fix `MRecordRTC` reference error (#177) ## 2.0.0 - 2017/10/05 - 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 of `player.recorder` to interact with the plugin, e.g. `player.record().destroy()` ## 1.7.1 - 2017/09/23 - 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 ## 1.7.0 - 2017/07/25 - Get blobs after specific time-intervals using the `timestamp` event and `timeSlice` 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) ## 1.6.2 - 2017/05/27 - 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 ## 1.6.1 - 2017/04/09 - 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 ## 1.6.0 - 2017/02/26 - Added `pause` and `resume` methods (#61) - Added `getDuration` and `getCurrentTime` 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` and `getCurrentTime` methods ## 1.5.2 - 2017/01/15 - Include CSS file for bower (#107 by @abrarahmedbcg) ## 1.5.1 - 2016/12/02 - Added `saveAs` method that shows a browser dialog window where the user can store the recorded media locally (#97) ## 1.5.0 - 2016/09/30 - Added `audioMimeType` and `videoMimeType` 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) ## 1.4.0 - 2016/05/25 - Added `reset` method to reset the plugin without destroying it (#73) - Releasing existing object URLs (#70) ## 1.3.0 - 2016/03/25 - Added `enumerateDevices` API (#16) - Preventing invalid or negative value in `formatTime` (#46 by @zang) ## 1.2.0 - 2016/02/27 - Added compatibility for single file recording introduced in Chrome 49+ (by @zang) - Preferring `navigator.mediaDevices.getUserMedia` instead of deprecated `navigator.getUserMedia` if available - Stop using deprecated `MediaStream.stop()`; use `MediaStreamTrack.stop()` instead - Added `audioRecorderType` and `videoRecorderType` 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 ## 1.1.0 - 2016/01/19 - 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` and `frameHeight` (#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) ## 1.0.3 - 2015/12/20 - Fixed wrong module require for browserify (#28 by @alsar) ## 1.0.2 - 2015/10/19 - Added animated recording indicator (by @ikbensiep) - Fixed `destroy` ## 1.0.1 - 2015/10/15 - Fixed AMD/Node/browser global dependency for video.js ## 1.0.0 - 2015/10/14 - Support for video.js 5 - Dropped support for video.js 4.x ## 0.9.3 - 2015/10/12 - Added translations for Afrikaans, German, Spanish, Finnish, Frisian, French, Galician, Italian, Portugese, Russian and Swedish ## 0.9.2 - 2015/10/06 - 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) ## 0.9.1 - 2015/10/04 - 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](https://developers.google.com/web/updates/2015/07/mediastream-deprecations) in Chrome 45 (#12) - Fixed issue with missing `isChrome` ## 0.9.0 - 2015/09/25 - Support for libvorbis.js in audio-only mode (#8) - Set default audio sample rate to 44100 (#7) ## 0.8.4 - 2015/08/27 - Examples fixes: wavesurfer changed domain name to wavesurfer-js.org ## 0.8.3 - 2015/07/30 - 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) ## 0.8.2 - 2015/03/30 - Fixed `debug` option ## 0.8.1 - 2015/03/30 - Removed duplicate `stopRecord` event trigger for image-only mode ## 0.8.0 - 2015/03/30 - 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 ## 0.7.0 - 2015/03/28 - Added support for images (#1) ## 0.6.0 - 2015/03/23 - Documentation fixes ## 0.5.0 - 2015/02/21 - Added `destroy` method for cleaning up - Added `debug` option to control console logging (in RecordRTC) ## 0.4.0 - 2015/02/19 - Compatibility fixes for Video.js 4.12.0 ## 0.3.0 - 2015/02/11 - Added Dutch translation - Disable controls during waveform rendering - Added `deviceReady` event - Documentation fixes ## 0.2.0 - 2015/01/07 - Bugfixes ## 0.1.0 - 2015/01/06 - Initial release