Kaltura Express Recorder (aka Express Capture or kSelfie) enables recording videos directly from the browser without the need to install additional software.
Web recorder is based on WebRTC and its predecessor project - webrtc-krecord.
Officially supported browsers: Chrome, Firefox, Opera.
If npm install fails make sure you are using node 14 (node-sass is dependant on it). You can download nvm and use it to set the node engine to be the proper one 'nvm use 14'
clone index.template.ejs into index.ejs (Same dir) and fill in the needed properties.
execute - "npm run serve"
const component = Kaltura.ExpressRecorder.create('parent_div_id', { list of props for expressRecorder components in form of 'prop': 'value' });
v<version number>.zip
(attached to version release notes) to Kaltura-server/apps/expressrecorder/v<version number>
name | description | type | required | default |
---|---|---|---|---|
ks | kaltura session key (should be user session with 'editadmintags:*' privilege) | string | yes | --- |
serviceUrl | kaltura service url | string | yes | --- |
app | client tag | string | yes | --- |
playerUrl | kaltura player service url | string | yes | --- |
partnerId | kaltura partner id | number | yes | --- |
uiConfId | kaltura player id (player v3 required) | number | yes | --- |
conversionProfileId | the conversion profile id to be used on the created entry | number | no | 1 |
entryName | name for the created entry | string | no | Video/Audio Recording - [date] |
allowVideo | allow video streaming | boolean | no | true |
allowAudio | allow audio streaming | boolean | no | true |
maxRecordingTime | maximum time for recording in seconds | number | no | unlimited |
showUploadUI | show upload progress and cancel button during upload | boolean | no | true |
event.detail.message holds error text
event.detail.loaded
holds the amount of bytes loaded, event.detail.total
holds the total amount of bytes to be loaded. const component = Kaltura.ExpressRecorder.create('parent_div_id', {...}); component.instance.addEventListener(eventType, callback);
startRecording()
clears existing recording if exists and starts the recording countdown.stopRecording()
stops an ongoing recording.saveCopy()
after recording exists, saves a local copy of the recorded media.upload()
uploads the latest recording to Kaltura.cancelUpload()
cancels an ongoing upload.addEventListener(type: string, listener: (event: ExpressRecorderEvent) => void)
allows listening to recorder events.removeEventListener(type: string, callback: (event: ExpressRecorderEvent) => void)
stops listening to recorder events.Thank you for helping Kaltura grow! If you'd like to contribute please follow these steps:
You can learn more about Kaltura and start a free trial at: http://corp.kaltura.com
Contact us via Twitter @Kaltura or email: community@kaltura.com
We'd love to hear from you!
All code in this project is released under the AGPLv3 license unless a different license for a particular library is specified in the applicable library path.
Copyright © Kaltura Inc. All rights reserved.
Authors and contributors: See GitHub contributors list.
Review the list of Open Source 3rd party libraries used in this project.