Variable speed playback with ExoPlayer
Andrew Lewis
174

I currently use Nimble Streamer http://nimblestreamer.com/ to stream. It has a security feature called WMSAUTH where as example, you have this URL for your live stream:

http://stream.company.com:8081/vod/sample.mp4/playlist.m3u8

The modified URL would be:

http://stream.company.com:8081/vod/sample.mp4/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9NS80LzIwMTIgODozMzowNSBBTSZoYXNoX3ZhbHVlPXE3MjN6aEVmdGFUOUJoWjBQTmw1TVE9PSZ2YWxpZG1pbnV0ZXM9MjA2

To generate signature you need to modify your front-end source to include snippet like this one below written in PHP.

<?php
$today = gmdate("n/j/Y g:i:s A");
$initial_url = "http://stream.company.com:8081/vod/sample.mp4/playlist.m3u8";
$ip = $_SERVER['REMOTE_ADDR'];
$key = "defaultpassword"; //this is also set up in WMSPanel rule
$validminutes = 20;
$str2hash = $ip . $key . $today . $validminutes;
$md5raw = md5($str2hash, true);
$base64hash = base64_encode($md5raw);
$urlsignature = "server_time=" . $today ."&hash_value=" . $base64hash. "&validminutes=$validminutes";
$base64urlsignature = base64_encode($urlsignature);
$signedurlwithvalidinterval = "$initial_url?wmsAuthSign=$base64urlsignature";
?>

Here, a key means a password which will be used later for setting up rule in control panel. The validminutes parameter means number of minutes while this signed link will be valid. This is done for the cases when people read the page and then start the playback with some delay.

Now I’ve noticed that on Android 6.1+ the streams do not play (keeps loading) if the WMSAUTH protection is active, but all below 6.1 do work. If I deactivate the protection it works for everybody.

On the new Samsung Galaxy S8 I get a black screen when I hit play. You can read more about WMSAUTH here http://blog.wmspanel.com/2013/11/nimble-streamer-protect-hotlinking-domain-lock.html

Is there anything you see here that could be the problem? I understand this might not be the correct place to ask about this.

Show your support

Clapping shows how much you appreciated Jhonatan Oliveira’s story.