In order to encrypt Live HDS content with Flash Access V2, it looks like I need to reconfigure 4 files:
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="allow">
<ProtectionScheme>FlashAccessV2</ProtectionScheme>
</ContentProtection>
</Recording>
</HDS>
</Application>
2.
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>16000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
<ContentProtection enabled="false">
<ProtectionScheme>FlashAccessV2</ProtectionScheme>
<FlashAccessV2>
<ContentID>livestreamJDLEW</ContentID>
<CommonKeyFile>(common_key_file.bin)</CommonKeyFile>
<LicenseServerURL>(license_server_url)</LicenseServerURL>
<TransportCertFile>(transport_cert_file.der)</TransportCertFile>
<LicenseServerCertFile>(license_server_cert_file.der)</LicenseServerC ertFile>
<PackagerCredentialFile>(packager_credential_file.pfx)</PackagerCrede ntialFile>
<PackagerCredentialPassword>(password)</PackagerCredentialPassword>
<PolicyFile>(policy_file.pol)</PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</Event>
3.
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<media streamId="livestreamJDLEW" bitrate="100"/>
</manifest>
4.
<manifest xmlns="http://ns.adobe.com/f4m/2.0">
<baseURL>http://<ipaddress>/hds-live/livepkgr/_definst_/liveevent/</baseURL>
<dvrInfo windowDuration="3600"></dvrInfo>
<media href="livestreamJDLEW.f4m" bitrate="100"/>
</manifest>
In (2), when I change the <ContentProtection> enabled tag to "true", the folder rootinstall/applications/livepkgr/streams/_definst_/livestreamJDLEW/ only receives the .control file -- the .bootstrap, .meta, .f4f, and .f4x files are no longer being generated -- and, therefore, no video is created.
How can I get my Live HDS streams encrypted with FAXS v2 working?
Thanks in advance!
Jon
For multiple streams at event level, you need to have multiple enteries in the manifest.xml under livepkgr/events/_definst_/liveevent/Manifest. xml as so :
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<media streamId="livestream1" bitrate="100" />
<media streamId="livestream2" bitrate="200" />
<media streamId="livestream3" bitrate="350" />
</manifest>
For this manifest you'll typically be publishing the stream as livestream%i?adbe-live-even=liveevent via FMLE.
For playback you need to use URL as : http://<server-ip>/hds-live/livepkgr/_definst_/liveevent.f4m
Hope this helps.
Thanks,
Apurva
I have the FMS URL and Manifest.xml set up just as you stated. Doesn't that configuration just set up multiple streams -- and not encryption? How do I encrypt multiple streams?
In my initial post, (2) shows my Event.xml configuration. The ContentID tag has the stream_name, so this looks like it will only encrypt a single stream. Is there some sort of %i suffix I can add in order to encrypt multiple streams? Or will I have to encrypt at the application-level to do so?
When you have the encryption configs at event level all the streams associated with that event will be encrypted. To verify, you can check the streams being created : livepkgr/streams/_definst_/livestrea1(2 or 3)/. There should be a .drmmeta file created.
You can set any content ID you want. Setting the stream name as content Id will not encrypt only that stream. Whatever content Id you choose to set will be applied to all the streams associated with that event.
Thanks,
Apurva
Thanks, Apurva! I'm able to encrypt multiple streams now.
My FMS configuration has hard-coded the names of the 3 streams (that are being streamed from Flash Media Live Encoder) in my Manifest.xml and liveevent.f4m files. The names of my streams are livestream1, livestream2, and livestream3.
In FMLE, the stream name has a '%i' to generate each streams' integer-suffixes. Is there a way to do this in my FMS configuration(s) as well instead of having hard-coded integers (i.e. 1, 2, 3)?
North America
Europe, Middle East and Africa
Asia Pacific