MB-Forensic project is a forensic watermarking automation process running on Azure cloud to apply watermarking on Azure Media Services (AMS) Assets.
MB-Forensic is composed by a orchestrate (Logic App), Actions (Azure Functions) and watermarker container on Kubernetes cluster. The process are expose by REST APIs making easy integration with existing MAM or workflows managers.
MB-Forensic installation process is divided on 2 main sub systems
a. Azure Container Service. Details steps are describe on k8s\readme.md
b. Logic Apps and Functions. Details steps are describe on ForensicWaterMark\readme.md file.
MB-Forensic expose 2 simple RESP API to apply watermarking on AMS assets.
Start a new watermark job using UnifiedProcess Logic App.
a. https: //{Logic App Endpoint}.logic.azure.com:443/workflows/{Logic App ID}}/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig={Logic App KEY}
a. Content-Type: application/json
POST CALL to CallBack URL specifying AssetId of original Assset and EmbebedCodes list. Each code on the list will produce a new Asset copy on AMS.
a. AssetId: AMS Asset ID string . b. EmbebedCodes: Text list of HEX codes.
{
"AssetId": "nb:cid:UUID:79d815cc-5cbe-4a99-add9-c74eeeeb596a",
"EmbebedCodes":
[
"0x1ADE29"
]
}
As response you will receive JOB status information.
{
"AssetStatus": {
"AssetId": "nb:cid:UUID:ecda4e79-f800-44de-9fd5-562de140c7c7",
"State": "Running"
},
"JobStatus": {
"JobID": "08586993026535557503409978660",
"State": "Running",
"Details": "Queue",
"StartTime": "2017-08-09T18:43:54.0835878+00:00",
"FinishTime": null,
"Duration": null,
"EmbebedCodeList": [
"0x1ADE29"
]
},
"EmbebedCodesList": [
{
"EmbebedCodeValue": "0x1ADE29",
"State": "Running",
"ParentAssetID": "nb:cid:UUID:ecda4e79-f800-44de-9fd5-562de140c7c7",
"AssetID": "",
"Details": "Just Start"
}
]
}
Provide job status
https: //{your Azure Function endpoint }.azurewebsites.net/api/GetUnifiedProcessStatus?code={your Azure Function Key}
a. Content-Type: application/json
Same Azure Asset ID and JobID obtained on preview call response.
a. AssetId: AMS Asset ID string. b. JobID: Job Id string.
{
"AssetId": "nb:cid:UUID:ecda4e79-f800-44de-9fd5-562de140c7c7",
"JobID": "08586993026535557503409978660"
}
Job Status information.
{
"AssetStatus": {
"AssetId": "UUID:ecda4e79-f800-44de-9fd5-562de140c7c7",
"State": "Finished"
},
"JobStatus": {
"JobID": "08586993026535557503409978660",
"State": "Finished",
"Details": "Finished",
"StartTime": "2017-08-31T16:12:28.1453138Z",
"FinishTime": "2017-08-31T16:16:02.9693522Z",
"Duration": "00:03:34.8240384",
"EmbebedCodeList": [
"0x2ADA06"
]
},
"EmbebedCodesList": [
{
"EmbebedCodeValue": "0x1ADE29",
"State": "Finished",
"ParentAssetID": "nb:cid:UUID:79d815cc-5cbe-4a99-add9-c74eeeeb596a",
"AssetID": "nb:cid:UUID:7dda66cd-4d12-4f85-94ae-98dbfc516f86",
"Details": "Ready 5 of 5"
}
]
}
a. AssetStatus
- AssetId: Asset ID from original ASM asset.
- State: Status of Asset, Finished means ready to embedded code on new MP4 copies.
b. JobStatus: Job information.
- JobID: id of job, same on Logic App run instance id.
- State: Finished, Running, Failed.
- Details: state context information.
- StartTime: Job started date and time.
- FinishTime: Job finished date and time.
- Duration: Job duration.
- EmbebedCodeList: Embedded code list.
c. EmbebedCodesList: Individual code status
- EmbebedCodeValue: embedded code.
- State: Finished, Running, Failed.
- ParentAssetID: Original AMS asset ID
- AssetID: new watermarked copy AMS asset ID.
- Details: state context information.
If you encounter any bugs with the tool please file an issue in the Issues section of our GitHub repo.
MB-Forensic has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
MB-Forensic is licensed under the MIT License.