Subtitles for DRM content - azure-media-services

I use Azure Media Player v2.3.2. There are existing encoded videos that work great to which I should include subtitles (VTT). Videos are DRM protected. I cannot find any documentation discussing the topic, just few (too) simple samples.
Should I use one separate shared container holding ALL subtitles of ALL media assets, or should I create one separate asset for subtitles of each media asset?
If I should create separate assets for each video, how can the media player know what subtitle asset belongs to the media asset as they're separete?
If I should create one shared asset for all subtitles of all media files, is there any limitations on how many subtitles I can have in this asset?
How does the media player know what all subtitles are available in the subtitle asset, to begin with?
How should I secure this subtitle asset to prevent downloading subtitles from it?

Jussi,
Thanks for asking. It is a difficult topic to find a lot of information on in our docs and samples.
We recommend keeping all the VTT files in the same Asset. We recently introduced a new "Tracks" API on Asset as well to make it easier to "late-bind" caption and audio tracks to an Asset. Docs are still being worked on, but I have a sample in Typescript up here that shows how to add a VTT track to an existing asset - https://github.com/Azure-Samples/media-services-v3-node-tutorials/blob/main/Assets/add-WebVTT-tracks.ts
Once you add a track of VTT, AMS will convert that to an IMSC text track that AMP and other players can understand. You have to set the language code correctly, and then tell AMP which language code IMSC1 tracks to display
Don't create separate assets. Not required
I don't believe we set a limit on Tracks at all... But I need to check with dev.
AMP only knows what subtitles are there if you configure it to find them. The AMP API has a setting on it to describe which IMSC1 to load. You can do this in the imsc1caption settings. For example, if you add an 'en-us' VTT file with the tracks API, you have to set the AMP player up to look for the 'en-us' IMSC1 file. It will read that from the DASH manifest.
https://amp.azure.net/libs/amp/latest/docs/index.html#amp.player.imsc1captionssettings
For other 3rd party players, they will read the caption track information from the DASH or HLS manifest file. We decorate them in the manifest appropriately according to those specifications so that the players can parse and load them. Each player differs a bit in support, and there are some known issues across players.

Related

How to include subtitles in Azure Media Services' manifest?

Using the portal I uploaded a video to an input-asset and encoded it into an output-asset. On the output-asset I uploaded a .vtt file via "Upload captions" button. I can reproduce the video with the captions/subtitles in https://ampdemo.azureedge.net/, using the manifest URL and an extra URL for the .vtt file in the "Tracks" options. However other video players don't seem to support captions/subtitles via an extra URL (for example in Android or here). Is there a way to somehow include the captions/subtitles in the manifest? I see manifests from other sources including subtitles. For example, https://d3rlna7iyyu8wu.cloudfront.net/skip_armstrong/skip_armstrong_stereo_subs.m3u8 (can be played here).
Unfortunately there's not a way to add the captions to the manifest itself. However, you pointed to the Bitmovin player and it actually supports VTT captions as per https://bitmovin.com/docs/player/articles/subtitle-and-closed-captions-support. Here's some example code that includes the VTT link https://cdn.bitmovin.com/player/web/8/docs/interfaces/core_config.sourceconfig.html

Umbraco 8 - Upload and Embed Videos from Local File

What I'm trying to achieve is to upload a video to the Media section in Umbraco 8 CMS and embed then choose the video to embed in Content, just like what is normally done with images. The video can be .mp4/.avi etc.
Looks like Umbraco 8 only supports YouTube and Vimeo videos, but that's not ideal in my case.
Umbraco 8 supports a lot more than YouTube and Vimeo out of the box: https://our.umbraco.com/apidocs/v8/csharp/api/Umbraco.Web.Media.EmbedProviders.html
If there IS an external provider you'd like to use, but it isn't in the list above, it's possible to create your own embed provider to make the Embed dialog support it. As long as it supports OEmbed it shouldn't be crazy complicated to do, I think. Have a look here: https://our.umbraco.com/documentation/extending/Embedded-Media-Provider/
In case you are simply not able to use an external video service, you probably have to do something like what is mentioned here: https://our.umbraco.com/forum/using-umbraco-and-getting-started/84626-inserting-video-banners-in-umbraco (in short, create a Media Picker property on your document type and handle it in the template like Micha describes)
In umbracoSettings.config file there's a section disallowedUploadFiles. Is Mp4 in there? You should be able to do this
There is also a max file size, so maybe check your vide is under that as well

Merge multiple fragments of video and mux it to normal video format

i want to ask if there is any option to just merge multiple fragments downloaded from HBO GO app and mux it to some normal format like mkv or mp4??? Because these fragments has no file type. Some script, program, guide ??? It looks like this
for video: Fragments(video=0), Fragments(video=10000000), Fragments(video=20000000), Fragments(video=30000000), Fragments(video=40000000), Fragments(video=50000000)
...for audio Fragments(audio_eng_st_dub=0), Fragments(audio_eng_st_dub=20201361), Fragments(audio_eng_st_dub=40402721), Fragments(audio_eng_st_dub=60604082)
...for text is simillar.
youtube-dl doesnt support HBO GO direct download so if anybody can help me with it ???
Thank you
They are probably fragmented mp4, You can just concat them with the init fragment and many players can play it.
However HBO use DRM, so you will never be able to play these files.

Load a folder of files defined by the user at runtime? Custom radio

I am trying to create custom radio tracks in my Unity game, and I want the user to be able to place audio files in a directory like My Documents/My Games/Unity Game/Custom Sounds/ . Then I want Unity to put all audio clips from this folder into an array for me to use in my code. I have searched but cannot find anything about loading a file you don't know the exact path of, or how many there will be
From #Eddge:
Yes, use the WWW class. docs.unity3d.com/ScriptReference/WWW-audioClip.html for the URL use file:// then the path of the file, it is important to note that unity only supports some music file formats, depending on the platform. So for example .mp3 will not work if building for windows desktop

Tag MP3 downloaded From Internet?

I am building an app with several podcasts. Each podcast gives the option to download the MP3 to the app. I have about 6 podcasts and would like to Tag each, so that when the archive view is clicked from each podcast, only archived files from that particular podcast show.
Is there someway that I can add a Tag or something to the downloaded mp3, and then in the archive, search only for mp3s with a tag related to that podcast?
BTW, I am using NSURLConnection to download each file
I think you may be looking at this in the wrong way.
Rather than tagging your downloaded files, you could set up a data structure to hold information about your files and use that to display your information.
For example. If I were doing this I would have a Core Data model that held information about the downloaded file, and tags, or sources, and I would store the path to that file in the database. That way, you can store whatever information you like about the downloaded file, and you can access it through it's path.