Widevine to encrypt all type of content and how to implement - widevine

Can Google Widevine be used to protect content of any type or it is just for videos? I can't find any implementation guide lines to utilize it

From what I saw so far, it is supposed to be for audio and video. Widevine web does not talk about anything else.
In theory, Widevine should work for any type of content because it is just a key management and some cryptographic operations on buffer of encrypted data. In practice you are limited by the API exposed by the platform - they will not give you low level access to decryption functionality to pass in custom data. For example EME in browser or MediaDrm on Android, are expected to be used with audio and video content.

Related

Is it possible to stream to youtube from wired nest cam indoor?

I have recently purchased a Nest Camera (Wired, Indoor) today and I am wanting to stream it to Youtube so I can embed a live-feed into my website and so I can share the stream with my friends so I do not have to add them to the Google Home application and give them access to all devices.
I've seen the api documents for it, but I do not understand them. I found the API Documents on google's developer site (https://developers.google.com/nest/device-access/api/camera-wired#extend_a_live_stream), however I do not understand how this works, or how to complete it.
In my personal opinion, there should be a feature to stream it to a platform such as Youtube, such a feature would make things a lot easier for many people.
I have so far found no documents explaining how to do this except from the api documents.
There is no simple "out of the box" way to do this. You would need to setup some kind of device as an intermediary. One one side it would connect to the SDM API, open a stream, and start receiving the data. On the other side it would need to connect to the YouTube API (or equivalent) and pass the data through. Unfortunately you would need some degree of programming skill to engineer such as system.

What is the preferred way for playback of a web video in Xamarin Forms?

I want to:
play videos in my Xamarin Forms app (iOS + Android + UWP)
follow best practices and use maintained code
be able to secure my content (subscription based access)
if possible, style the transport controls to have a the same look and feel as my app
I found multiple ways that are possible, but not sure what is to be advised given my scenario:
Azure Media player
I found this talk that implied that it is best to use Azure Media Services to transcode your video to different qualities / formats so you can do Adaptive Bitrate Streaming, which means that depending on the quality of the connection and the device type, you will always have the "best possible" video on every type of device with the lowest bandwith usage. According to this talk this requires a "smart player" with the logic to do the switching between quality levels. In the talk the azure media player is mentioned as the go-to video player because it has support for Adaptive Bitrate Streaming (ABS) from azure media services.
It does not mention other players with ABS compatibility.
The transcoded video in the sample is played with Azure Media Player, which is hosted in a WebView. And since this talk was from 2018 and in a very recent release of Xamarin Forms (5.0) they have removed support for UIWebView and replaced it with WKWebView and I'm not sure if the WebView (and thus the video player) used in the sample is still supported / advised.
Custom Renderer
The Xamarin Forms documentation has a section "implementing a video player" where they give you a sample video player in the form of a custom renderer. I like that they allow you to style the transport controls yourself.
It is not mentioned if this video player has the same "smart switching" like the azure media player.
Use vimeo
With a paid subscription you can apperently secure the access your content. The styling of the player is limited, but maybe enough for my purposes. They do the content encoding / smart switching in the player for you. You pay a monthly fee, and have a limit on how many video minutes you can add each month, but no other bandwith / storage costs (as far as I can see).
Quick and dirty (naive?)
I can upload an mp4 to azure blob storage and use the customer renderer sample to playback the video directly from the blob.
This however would mean that there is no dynamic switching of video quality on the client and they would always consume "full bandwidth".
I am new to video transcoding / streaming.
Am I missing something in my analysis?
I would definitely go with option 2 because:
It's recommended by Xamarin and Microsoft.
It's free!
Taking adventage of the native implementation, you would be using the full potential of each platform and you can display videos from any source, local videos from the phone or the project or from YouTube, Vimeo, etc (as long as they are public videos).
Easy to use.
It's easy to customize because you handle the native code, that means you are in charge and not some WebView or someone else library.
I would discard the other options because:
Option 1 might be a good option, but you're consuming Azure and eventually it will cost you or your client money and use a WebView to display a video it's not very friendly from the UX point of view.
Options 3: I would definitely discard a paid solution if I have other options, specially if the other options are free.
Option 4 as same as before, you would be consuming Azure time and process, that lead you to lose money, if you want to upload a public video always upload to YouTube or some similar service, but as you said, consume the video from a native video player is the best option.
And by last, check this official sample, is more updated than the docs.
P.D: it's, custom renderer, not customer renderer ;-)

Azure media services encryption in transit and at rest

I want to enable encryption in transit and encryption at rest for all the content stored in media storage.
As I read here,
No encryption is used. This is the default value. When using this
option your content is not protected in transit or at rest in storage.
But since all my data resides in storage itself, won't it be encrypted by default at rest because of the SSE in Azure Storage ? Am I missing something here ? Also, how is the metadata (Asset information, Locator information etc.) about the content stored ?
with Media Services v2, you can use AssetCreationOptions.StorageEncrypted option, as shown here: https://learn.microsoft.com/en-us/azure/media-services/previous/media-services-dotnet-upload-files#upload-files-using-net-sdk-extensions.
See, the "Storage side encryption" table for more information: https://learn.microsoft.com/en-us/azure/media-services/previous/media-services-rest-storage-encryption#considerations
Please, let us know if you have other questions.

Can an Alexa custom skill get access to the voice stream/audio file of a user?

I would like to have a custom skill, but it would need direct access to the users voice (our output of a recorded audio). Can/will Alexa relay the stream rather than sending the request invocations (launch/intent/session-end)?
I understand custom skills can send back mp3s as responses, but being able to gain access to the actual voice requests, either the stream or a mp3, would be awesome.
Edit:
It seems that there is not a provided mp3 in the request object: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference#LaunchRequest
Alexa does not provide this service.
Having an always-on device in a domestic setting, that can hear everything said, plus background noise, and side conversations, is a huge security concern. Amazon mitigates this concern by filtering the input, performing the difficult Speech-to-text work, and only providing the resulting text. (After further processing by your interaction model.)
In short, no - I can't find anywhere specifically in the documentation but I just created a Python library that encapsulates all the JSON structures, so I know you can't do this yet.
The only control over audio is 'output' through embedding links in SSML.
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/handling-requests-sent-by-alexa#Including%20Pre-Recorded%20Audio%20in%20your%20Response

Object-c url data encryption

I have an iPhone app that will call web-service on asp.net server. e.g. http://server.ws.com/projects.wsdl?i=10. The web service is written in c#.
I want to encrypt the url on the iPhone app and decrypt it again on the asp.net website correctly so I don't lose any data.
Thanks.
C# has some really good native encryption classes. The trick is ensuring the implementation is the same for the C encryption, and the C# encryption.
After a quick google search this is what I've come up with:
The apple tutorial gives some information about encryption is Objective C on the iPhone: http://developer.apple.com/library/ios/#documentation/Security/Conceptual/cryptoservices/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011172
Here are some things that you need to consider:
How you're going to make the connection,
How you're going to establish a key on both sides : http://en.wikipedia.org/wiki/Key_exchange
Encrypting the information using a predefined algorithm.
Transmitting the encrypted data along the connection. This last one shouldn't be too difficult.
Hopefully this will be helpful :)

Resources