1
votes

I am trying to implement Video on Demand using Azure Media Services on Android.

I have uploaded the video, encoded it to Multi-Bitrate MP4 and then added AES encryption and published it.

I received this MPEG-DASH Url: http://prepladder-inct.streaming.media.azure.net/xxxx-xxxx-xxxx-xxxx-xxxxxxxx/sample-video.ism/manifest(format=mpd-time-csf)

But i am unable to play this video on any MPEG-DASH player (Android or web)

I am even unable to play this video on Azure dash player link: http://dashplayer.azurewebsites.net/

When i enter the stream url, the player is able to show the duration of the video but does not play.

enter image description here

On ExoPlayer on Android, i am able to play all MPEG-DASH streams available online for testing purpose.

Also, i am able to play HLS stream provided by Azure for the same media on ExoPlayer and on iOS.

I have not added any token authorization or DRM during video encryption.

I am missing something? Please help.

2

2 Answers

0
votes

The problem is likely that your video file name has unsupported characters. The issue is documented here, where we point out that certain characters should not be used. Try renaming the source video to, say, GM_1st_acid_fast_stain.mp4, upload it to a new Asset, encode, and then create the streaming URL.

0
votes

For FairPlay/HLS, it is critical to provide the Application Cert (public key only) to the player. Apple's recommended way is to host this App Cert on a web server and pass the URL to player.

SPC/CKC negotiation is performed inside the player.

I would suggest to use this test/diag tool http://aka.ms/amtest which is equipped to support all 3 DRMs (FairPlay, Widevine, PlayReady) and AES-128. If you expand "player_settings" you will see an entry called "FPS AC Path" which is where you paste in your App Cert URL. Also put in "FairPlay" under protectionInfo.type. Of course you need to run the test in Safari on macOS.

Hope this helps. William