We would like to implement VOD streaming service with DRM protected stream.
Does Chromecast support PlayReady with WMV container format?
We have made PlayReady-encrypted files already. And we used wmv codec for video, and wma codec for audio and stored in wmv container.
There're some documents that chromecast can support Playready with PIFF format or CIF format etc. (Do Netflix and Hulu use PlayReady?)
I want to ask a question if chromecast support Playready DRM with WMV container format with wmv video and wma audio or not.
Regards.
WMV/WMA are not currently supported by Chromecast.
No, Chromecast don't support WMV encrypted, you need to switch to SmoothStreaming using .ism/Manifest files.
Related
I'm recording screens and webcam video in a Chrome extension using WebRTC but it appears the audio streams in my .mp4 videos are encoded with Opus which causes QuickTime to display an Error -2048: Couldn't open the file video.mp4 because it is not a file that QuickTime understands.
Is it possible to use a different audio encoding option supported by Quicktime?
I don't believe mp4 supports any audio codecs supported by WebRTC.
If possible I would use Matroska, that supports VP8/VP9/H264 and Opus/PCM which will cover pretty much all WebRTC calls.
I have a common use case scenario where I want to do the following
Upload an audio file. (wav/mp3)
Transcodes to 128k or 192k mp3.
Stores the audio asset.
Allows the audio asset to be streamed.
Supports streaming actions such as play pause and seek.
The documentation for azure media services seems like it might be able to support this but I am not too sure, seems like they focus on video content. Anyone have experience with this?
You can manage audio and encode audio only assets with azure media services.
WAV is supported input format/conatiner as a input asset. To see full list of supported formats check following link:
https://azure.microsoft.com/en-us/documentation/articles/media-services-media-encoder-standard-formats/
Check https://github.com/Azure/azure-content/blob/master/articles/media-services/media-services-custom-mes-presets-with-dotnet.md#audio_only to see audio only preset options which you will use to encode an audio only preset.
I've seen mentions of WebM being used for audio, but reading the WebM Project site and googling convert mp3 to webm has led me to believe that WebM is just for video. I definitely see lots of WebM to mp3 conversion utilities, but not the reverse.
I can see it's definitely used for video, but how about audio? If it is intended for audio files too, how do I generate a WebM file?
WebM is just a container format and can contain both video and audio:
WebM is a digital multimedia container file format promoted by the
open-source WebM Project. It comprises a subset of the Matroska
multimedia container format.
It can be used for audio-only purposes as well as long as the audio is encoded as Vorbis or Opus. Just specify correct mime-type (ibid.):
Audio-only files SHOULD have a mime of “audio/webm”
To generate such a file a suitable software that support the webm container and its supported codecs has to be used. Unfortunately, support for it can be hard to come by. Typically the OGG container is used when you want to encode audio using the Opus codec as it has much broader support, which may explain the lack of support of webm for audio (as of this being written).
Update: One route to WebM is to use FFMpeg (see this answer), just ignore the video options (-vn).
I'm aware that developer-preview of Chromecast receiver does not fully support Smooth Streaming manifest URL (See Update#1).
I have tested content provided by Microsoft PlayReady(TM) Test Server - Smooth Streaming assets using sample receiver app provider in GitHub project.
Smooth Streaming Support
As expected, manifest file does not work (See Update#1). But I was able to play individual ismv file (but only low bitrates). When I use higher bitrate, the video container stays black.
PlayReady Support
When I tried to play PlayReady protected low bitrate ismv file, I was expecting some sort of call back MediaProtocolMessageStream.onKeyRequested(). But there did not happen. Here is my android CustomMediaProtocolMessageStream implementation.
So, does anybody know how PlayReady or Widevine supposed to work with Chromecast? I have seen Netflix invokes some binary shell command when app is loaded in chromecast. But I assume, they worked with Google to accomplish this.
Additional SO Resources
How to play smooth streaming video in Chromecast?
Is it actually possible to play SmoothStreaming videos on Chromecast without using (format=mpd-time-csf)?
Playing Smoothstreaming URL by providing Manifest file of smoothstreaming to Chromecast device
Update #1
Based on Les Vogel's answer, smooth streaming manifest file for adaptive bitrate streaming is supported by Chromecast. You need custom player to handle that.
As far as I am aware of, currently there are two JS player which can handle that, but I don't know if they will work on Chromecast.
dash.js - By DASH Industry Forum (https://github.com/Dash-Industry-Forum/dash.js)
Microsoft HTML5 Player Framework - Part of Microsoft Media Platform (http://playerframework.codeplex.com/)
Currently, you need to write your own media player to support adaptive bitrate streaming on Chromecast.
Unfortunately, the MS test server assets do not correctly provide a CORS header, which would be needed if you wrote a javascript player.
PlayReady and Windvine are both supported. We'll be providing additional documentation shortly.
EDIT We announced the beta of the Cast Media Player Library today 2/3/14 - it supports HLS, SmoothStreaming, and MPEG Dash.
Yes, you can use "com.microsoft.playready" for PlayReady and "com.widevine.alpha" for widevine.
I have a stream which I want to cast to a Smart TV. But the streams contains audio format which is not supported by Chromecast as of now. But the Smart TV is capable for playing this audio format. Is there anyway I can tell chromecast to do a passthrough for this audio through HDMI?
No, there is no such functionality in chromecast.