Category Archives: Watermark

Secure Video Streaming API: VdoCipher for Developers

We are happy to release a new set of full-solution streaming APIs for our secure video streaming service. In this blog article, I’ll mention the common business use case which generally developers use with our streaming API. The links to the new set of APIs and sample codes are also given.

  1. Secure Video Embed

    Encrypted Streaming + Backend authentication with an OTP to prevent video download and sharing is the key essential feature we provide as part of our secure video streaming service.

    Please visit Embed API and sample codes in section 9 of this blog to see how to embed secure streaming videos.

  2. Dynamic Watermark configuration

    Dynamic watermarking prevents video piracy via screen capture methods. Viewer specific watermark configuration for type of watermark, movement, color and size can be customized using watermark api.

  3. Upload from various sources

    To help you manage your video content we offer various options for optimal video ingestion and video management. VdoCipher supports video upload from the desktop, server, URL and FTP. The upload api can be found at the updated API page.

  4. Tagging Videos

    Video tags are one of the key elements used for categorising videos. Multiple video management needs multiple tags to better categorise and search. The tagging api can be found here.

  5. Searching Videos

    APIs to enable video search from names and tags can be found here.

  6. Upload from website for your viewers

    Enterprise customers can have their own customers upload videos directly on our site. This can be implemented with APIs using these links.
    Upload from viewer api
    Upload APIs 

  7. Setting Bitrates, Checking video status

    Both of the points 8,9 are available at video apis with vdocipher.

  8. Sample codes for php & asp

The below mentioned blog archives provide a complete list of blogs on api details and also some codes in asp and php.

All API blogs – Contain 14 articles

Some sample php codes (3 articles)

Some sample asp codes (4 articles)

 

Video Streaming Hosting VdoCipher

All these things, VdoCipher handles for you. Launch Today.

Start a free full version 5 GB trial today at VdoCipher

Have a glimpse of the number of your viewers using video download tools for easy piracy. 

An Open Source Contribution by VdoCipher

Encrypted Video Streaming: VdoCipher & Others

The main encrypted video streaming protocols in use by most streaming providers are Apple’s HLS Encryption (HTTP Live Streaming) , HTTPS (HTTP Secure), Real Time Messaging Protocol (RTMP) and RTMP Encrypted (RTMPE). HLS encryption, with AES 128 bit encrypted streaming, in particular is widely used and marketed by companies as a completely secure streaming protocol. However, inspite of the existing security features, these streaming protocols are insufficient as complete encrypted streaming protocols themselves. This is because, from the perspective of protecting content from piracy, their security flaws lie in:

  • Partial encryption of streaming content
  • Open key exchange mechanism for decryption

The security vulnerabilities in these encrypted streaming protocols have led to design of tools that may be used to decrypt the encrypted video content, thereby allowing illegal and un-authorized downloads. These tools include IDM, Video Download Helpers, RTMPDump and many similar other tools used for pirating proprietary content.

Although widely used, these streaming protocols are not the only streaming protocols that can be used. VdoCipher uses a modified version of the existing streaming protocols to increase video security, and minimize bandwidth usage.

Here we explain how VdoCipher Encrypted Video Streaming works, and how our proprietary encrypted video streaming technology is hackproof. Complete workflow is mentioned below. Steps 5 and 6 of the video streaming workflow are the key differentiators.

Video Streaming Hosting VdoCipher

All these things, VdoCipher handles for you. Launch Today.

  1. Upload

    The video content is uploaded by the registered customer through Desktop, FTP, Drop Box, directly from server and direct from URL. VdoCipher supports all typical video formats.

  2. Transcoding for Protected Streaming

    At VdoCipher we have designed our own proprietary format that we convert videos in. It is in this format that the encrypted streaming takes place in. After user uploads the video the VdoCipher player converts content into encrypted format. The video is transcoded for optimization at multiple bitrates, so that viewers on networks of any quality can conveniently view videos.

  3. Storage of Encrypted Content

    The videos are stored securely on Amazon’s AWS S3 servers using our own server-side encryption technology, creating a double layer of protection.

  4. Encrypted Video Transfer – Differentiator

    Now the encrypted content has to be streamed to the final viewer interface , be it app or browser. Unlike many other streaming protocols, there are two key differences:

    Firstly, the entire stream (not partial) is encrypted using a non-public key whose exchange mechanism is hidden and is proprietary. Others like RTMP does it partially and not fully secure.

    Secondly, the transfer of this encrypted content is not through direct access to the video file. There is a one time URL that is generated and the content is transferred in different chunks to optimize streaming.

  5. Licensing & Authentication – Differentiator

    If the video has a direct video URL that can be shared, then the encrypted video streaming has completely ineffective security. This is because there can be multiple browser playback of the same video, and therefore the video can be easily downloaded. Our key service differentiator is that we have One Time generated video URLS. These URLs are accessed only through custom video embed codes, allowing licensing duration for each single video stream. This prevents any URL based sharing.

  6. Decryption & Playback – Differentiator

    Finally, the encrypted stream content is decrypted inside the player with a dynamic key. Our proprietary key transfer protocol is fundamentally different from the public key transfer protocol in cases of HLS, HTTPS and RTMPE Encrypted Streaming Protocols.

    A private key transfer between the website and our API signifies that it is not possible for hackers to decrypt our streams. The One Time encryption that we use is theoretically and practically hack-proof . We regularly update our authentication mechanism to keep the security features up to date.

    Video licensing and playback are combined to generate customizable viewer specific watermarks. Within the watermark offering, IP address, Email ID  and User ID can be shown as light transparent watermark, to identify a playback session by the viewer.

    Result – Progressive High Secure Video Streaming

    Through this 6-step Video Hosting, Encryption and Streaming process, VdoCipher is able to provide a progressive high security video streaming with future buffer possible. This is also different from RTMP which does not maintain any buffer and can be quite erratic as a result.  Also, once a part of a video is buffered it remains conserved, even when the viewer seeks back or forth. This ensures fastest loading times and minimal bandwidth usage for secure video streaming.

encrypted video streaming                          To try the product trusted by customers across 30+ nations secure video streaming, Add more revenues by eliminating video piracy, have a full free 5 GB trial at www.vdocipher.com

 

Custom variables as watermark on wordpress videos

Watermark on videos adds extra security for the video from screen capture by adding variables such as email, IP or date information to the videos. Custom variables is now supported in plugin 1.6

Till version 1.5 of our WordPress plugin, watermark on videos could only have a limited number of dynamic variables. With version 1.6, we have now added filter hooks on the annotation code to enable other plugins or themes to change the annotation code.

You can now add a custom filter to the hook `vdocipher_annotate_preprocess` . Example code for adding custom filter is:

function customfunc($vdo_annotate_code){
 $customVariable = "Hello world";
 $vdo_annotate_code = str_replace('{var1}', $customVariable, $vdo_annotate_code);
 return $vdo_annotate_code;
}

$er = add_filter('vdocipher_annotate_preprocess', 'customfunc');

The above code enables you to replace the token {var1} with the value of $customVariable. You can then use an annotation code like:

[
{'type':'rtext', 'text':'Your IP : {ip}', 'alpha':'0.8', 'color':'0xFF0000','size':'12','interval':'5000'},
{'type':'text', 'text':'{var1}', 'alpha':'0.5' , 'x':'150', 'y':'100', 'color':'0xFF0000', 'size':'12'}
]

This code on going through the above filter will become

[
{'type':'rtext', 'text':'Your IP : {ip}', 'alpha':'0.8', 'color':'0xFF0000','size':'12','interval':'5000'},
{'type':'text', 'text':'Hello world', 'alpha':'0.5' , 'x':'150', 'y':'100', 'color':'0xFF0000', 'size':'12'}
]

This function can be placed in the functions.php file in your theme. It is recommended to create a child theme before making such edits. The theme

Adding video specific watermark

With this tool, you can also set custom variables for different video or wire up your own logic using any WordPress parameters.

Watermark user/time specific dynamic variables on WordPress videos

To check and download the WordPress plugin, please go http://wordpress.org/plugins/vdocipher/

 

While adding videos watermark or annotation code on vdocipher videos using the WordPress plugin, you can configure the text to fetch dynamic user variables. These variables can be user name, email or date in custom format. Here is the complete list of variables which can be used in the annotation code.

{name} : This shows the display name of the user who is viewing the video. This calls the function: wp_get_current_user()->display_name

{email} : wp_get_current_user()->user_email

{username} : wp_get_current_user()->user_login

{id} : wp_get_current_user()->ID

{ip} : $_SERVER[‘REMOTE_ADDR’]

{date} : This function allows you to configure the video to show date in custom format. You can use the predefined PHP date constants to display date. The format is {date.pattern}, where pattern will be the input of PHP’s date function.

preg_replace_callback('/\{date\.([^\}]+)\}/', function($matches)
{
   return date($matches[1]);
} , $vdo_annotate_code);

 

An example code using the above variable tokens:

[
{'type':'rtext', 'text':'Your IP : {ip}', 'alpha':'0.8', 'color':'0xFF0000','size':'12','interval':'5000'},
{'type':'text', 'text':'Time: {date.h:i:s A}', 'alpha':'0.5' , 'x':'150', 'y':'100', 'color':'0xFF0000', 'size':'12'}
]

Check example video for the above code here: https://www.vdocipher.com/blog/2014/12/add-text-to-videos-with-watermark/

Currently, the WordPress plugin supports a single annotation parameter across the website. If you must have a video without the annotation, you need to add a no_annotate parameter [vdo id="aaaaaaa" no_annotate="true"]

Add images and text to video with dynamic watermarking

Below is a sample video with dynamic watermark features.

The stream is encrypted for highest security. For playing it on mobile, ask for an app or app sdk. This video is displayed using our WordPress plugin annotation features. It can be customized for movement , color, size , transparency. For a watermark on your own video, get a free full version trial at www.vdocipher.com

All you need to give is a JSON string describing how and what you need to overlay on your protected videos. Videos streamed on VdoCipher are protected from unauthorized downloads. Watermarking user information further cuts down on the chances of sharing a recorded video.

How to get started?

I am assuming you have uploaded your video to your VdoCipher account and are ready to embed the video either using WordPress plugin or implementing the API yourself. In both the cases, you need to pass an “annotation code” or a “json string” to tell us what and how to annotate.  Let’s see how to create this annotation json and add text to video. (A json string is a form of representing structured data in a way machine can understand.)

Here is a sample:

[
{'type':'image', 'url':'https://example.com/url/to/image.jpg','alpha':'0.8', 'x':'100','y':'200'}, 
{'type':'rtext', 'text':'moving text', 'alpha':'0.8', 'color':'0xFF0000','size':'12','interval':'5000'},
{'type':'text', 'text':'static text', 'alpha':'0.5' , 'x':'10', 'y':'100', 'color':'0xFF0000', 'size':'12'}
]

The above code adds a moving text, static text and a static image for your video.

Technically, this is a JSON array of objects, where each object describe a single annotation item. Each of these items will be described by its parameters.
Every item requires a type parameter which defines the type of watermark. The type of watermark can be either a static text, a moving text or a static image. The rest of the parameters depends on the type. Following a short description of how each of these parameters affect the display of text and image. The text after “//” denotes a comment about the parameter value.

Static text
‘type’ : ‘text’,   //do not change, this defines the type of annotation item
‘text’ : ‘the text you like to be displayed’,
‘x’ : ’10’,  //the distance from the left border of video.
‘y’: ’50’,  //the distance from the top border of video.
‘alpha’: ‘0.8’,    //the opacity of the rendered text, 0 is invisible, 1 is full opaque
‘color’:’0xFF0000′,    //the color of the text specified as hexadecimal or uint
‘size’:’12’,
      //Height of the text, in pixels.

Moving text
‘type’: ‘rtext’,
‘text” : ‘Enter whatever text you like to be displayed’,
‘alpha’:’0.8′,
‘color’:’0xFF0000′,
‘size’:’12’,
‘interval’:’5000′    // the interval in milliseconds when the text changes position

Image
‘type’ : ‘image’,
‘url’ : ‘http://example.com/path/to/image.png’,     // the direct link of image
‘x’ : ’10’,
‘y’ : ‘100’

 

  • Note that both the name and the value of these parameters should be in quotes. This rule applies to both text as well as numbers.
  • Each parameter is to be separated by comma. There should not be a comma after the last parameter for the dynamic watermark video settings.

Final Step

Now you need to integrate the above watermark info in your actual video. Pass this json string as a post parameter when making the OTP call with key value annotate. Note that, our current v2 API requires post data to be sent as Content-Type: application/x-www-form-urlencoded  . So, there will be two different post keys: 1) clientSecretKey 2) annotate

Only if you are writing the http requests from scratch you will need to url encode the json string when appending it to the post data. Most web frameworks have inbuilt method of generatig post data. In such cases, you should ensure that data is not doubly encoded i.e. just set the json string when calling your web framework’s addPostParam() method.

Still having problems with the dynamic watermark on video code? Send us the code you are using and the output you wish to be shown to info@vdocipher.com

Secure video streaming and hosting: Advances in technology

VdoCipher provides highest secure video streaming in the world market.

It is a full packaged video streaming, hosting, Encoding+DRM service offered in easy to use manner.

This post presents an overview on various practices adopted by VdoCipher to deliver secure video streaming for its clients. For e-learning and media companies hosting streaming videos on their sites, having a secure video player on the site is the primary requirement. For better user experience, forcing the viewer to install some plugin is also not preferable.  VdoCipher ensures that its customers can use secure video streaming without deteriorating the viewer experience.

The encryption and authentication technology is built in with the VdoCipher player.

Secure video streaming technology

Dynamic watermarking the videos with viewer detail further enhances security from screen capture. It discourages distribution of content captured using external cameras.

Encryption, authentication and  dynamic water marking are thus the tools by VdoCipher for secure video streaming.

You can also limit access to certain IP addresses and Geographical locations using the whitelisting features.

A light weight video player which allows buffer retention ensures a smooth streaming experience for the viewer. Buffer retention here means , that as the viewer seeks back and forth on the video player, the buffer remains conserved. This ensures minimal bandwidth usage and a smooth streaming experience for  viewers with slow internet speeds.

A note on secure video hosting – As already mentioned, encryption, watermarking & licensing are the key features that prevent illegal access of streaming videos. Coming to the hosting part of videos in secure fashion, VdoCipher stores videos in a proprietaryy format on its owned AWS(Amazon) + Akamai servers. These are internationally the largest server + CDN companies catering about almost all the media content in the world. The direct access to the servers for any piracy or hack attempt is impossible owing to strict hosting security standards maintained by these server companies. The fact that the one time url for the secure hosted video is a link to the raw encrypted file with no access to its decryption key, it makes even the rare access of the encrypted video useless.

Integration with secure video player

Integration of VdoCipher with any website is quick with embed codes provided through easy to use APIs. For websites built with services like wordpress and joomla , VdoCipher has ready to use plugins. Features which are supported along with secure video streaming are- video analytics, bulk upload through computer, dropbox or shared url, custom video player design, pay per use pricing and live customer support.

So, how to start using this secure video streaming video with VdoCipher ?

To start with a free full version 5 GB trial of VdoCipher – you just need to signup with a mail id. No credit card , no details , no time limit, just signup and you are ready to sell videos online.

  Signup for free trial

If you have any queries, team VdoCipher is here to help you. Please send your queries and specific requirements to the contact link located here.