Kaltura is an third party video implementation library. Using Kaltura we can host our videos on a dedicated server or cloud.

You can host your own CE server to store videos and create players.
You can host it on cloud, which is paid as well as free, but for free you can upload less videos and you get less cuztomizations.
One can secure the video by streaming the video using RTMP protocol, now the video cant be downloaded via RealPlayer or any web download means.
Also the video is supported across all browsers and all devices including iOS devices.

There is no single gem to provide with all the advantages that Kaltura Offers.
CE Server with RTMP setup at one's own independent server, creates glitches, problems with seeking video and lag issues.
Players cant be cuztomize to larger extent.

Working with Kaltura:

SETUP CE-Server on Local
[Setup Guide(Complete Reference)][1]

GEM For Kaltura
gem "kaltura_fu"
The Gem provides an excellent resource of connecting the kaltura server using your credentials, using these benefits of gem you can go ahead and override the viewhelper method which help you render the video.

Why do we need to override the viewhelper?
To have HTML5 fallback in place for iOS devices.
To set the video streaming type to RTMP.

This format is not downloadable, an user has to visit your site to view the video cant download and view the video offline. Why it cant be downloaded has a bigger explanation, meanwhile a short explanation video is streamed in small fragments so the whole video is never available hence for downloaders like IDM and RealPlayer which downloads based on video stream isnt available using RTMP.

How to set HTML5 Fallback?
Add this script: @<script type="text/javascript" src="#{service_url}/p/#{partner_id}/sp/#{partner_id}00/embedIframeJs/uiconf_id/#{player_conf_id}/partner_id/#{partner_id}">@

And for any help you can post your queries at http://www.kaltura.org/forum
[1]: https://github.com/instructure/canvas-lms/wiki/Kaltura-setup-instructions