REST API für Audio Task Framework

<< Klicken Sie hier um das Inhaltsverzeichnis anzuzeigen >>

Navigation:  Detailbeschreibung > REST API Service >

REST API für Audio Task Framework

Mit dem DABiS Audio Task Framework können unter anderem Audios konvertiert, normalisiert, gemerged und analysiert werden.

Einige Funktionen des Audio Task Frameworks können über eine REST-Schnittstelle angesteuert werden.

Es gibt dazu zwei Endpoints:

/stream für Streaming: z.B. http://localhost:8088/WebRaw/title/stream?dbAlias=D800_SKR

/process sonst: z.B. http://localhost:8088/WebRaw/title/process?dbAlias=D800_SKR

Zu beachten ist, dass dem UrlPath des RestApiServices (Standard: “/Web” ) immer das Suffix “Raw“ angehängt wird. (Standard ist somit “WebRaw”.)

Die Tasks werden im JSON-Format im Body des Requests übergeben.

Nachfolgend ein Beispiel, bei dem zwei Titel gemerged und als mp3 zurück gestreamt werden.

PUT: http://localhost:8088/WebRaw/title/stream?dbAlias=D800_SKR

Body:

{

    "Inputs": [

        {

            "objectType": "MergeInputFades",

            "TitleId": 1040,

            "LevelOffset":0,

            "StartOffsetInMs":0,

            "PrerollInFrames":1,

            "FadeinInMs": 2000,

            "MittelteilInMs":5000,

            "FadeoutInMs": 1000

        },

        {

            "objectType": "MergeInputFades",

            "TitleId": 2156,

            "LevelOffset":0,

            "StartOffsetInMs":6000,

            "PrerollInFrames":1,

            "FadeinInMs": 2000,

            "MittelteilInMs":15000,

            "FadeoutInMs": 3000

        }

    ],

    "Tasks": [

        {

            "TaskType": "Merge",

            "Position": 1

        }

    ],

    "Audioformat": {

        "AudioFormatType": "Mp3",

        "Samplerate": 48000,

        "BitRateInKbps": "128"

    }

}

Zur Festlegung der Reihenfolge müssen die Tasks das Property Position definiert haben.

AudioTask:{
   TaskType:"normalizeR128"|...
   Position:0|1|...
}

 

Analyse-Tasks

AnalyzeLoudness:{ // Gibt die aktuelle Loudness zurück
}
AnalyzeLoudness:{ // Gibt die Differenz zur gewünschten Loudness zurück.
   targetLUFS:-22
}

 

Tasks zum Ändern eines bestehenden Titels

Je nach gewähltem Mode werden die Metadaten oder die Datei selber verändert.

normalizeR128:{
   "targetLUFS": -21,
   "mode": "metadata | file"
},
trim:{
   "levelin": -50,
   "levelout": -40,
   "mode": "metadata | file"
},
timestretch:{
   "factor": 0.99
}

 

Falls kein Audio-Format angegeben wird, wird das in den Settings unter Datenbank definierte AudioFormat verwendet.

 

Tasks zum Ändern mehrerer Titel

Es kann sowohl eine

Liste von FachIds (kann null sein) als auch eine

Liste von TitelIds (kann null sein)

übergeben werden.

 

"Inputs":[

   "Titles":{

      "Ids":[]

   },

  "Folders":{

      "Ids":[]

   }

]

 

Audio-Formate

Basisklasse ist AudioFormat:

 

audioformat:{

   "audioFormatType": "mp2",

   "samplerate": 48000,

   "fileExtension": ".wav"

}

 

Es gibt folgende Basisformate

 

linear (wav)

mp2

mp3

opus

 

linear : {

   "Samplerate": 48000,

   "FileExtension": ".wav",

   "ChannelMode": "2",

   "BitDepth": "16|24|32"

}

 

mp2: {

   "Samplerate": 48000,

   "FileExtension": ".mus",

   "MpegMode": "",

   "BitRateInKbps": "128",

   "Padding": 1,

   "BlockSize": int,

   "PsyModel": int

}

 

mp3: {

   "Samplerate": 48000,

   "FileExtension": ".mp3",

   "MpegMode": "",

   "BitRateInKbps": "128"

}

 

opus: {

   "Samplerate": 48000,

   "FileExtension": ".opus"

}

 

Weitere Beispiele

Normalisieren: Der Titel mit der Id 1040 wird auf -23 LUFS normalisiert. Mode "file" bedeutet, dass die Datei verändert wird. Mode "metadata" verändert die Titeldatei nicht, aktualisiert aber die Metadaten in der Datenbank.

{

 "Inputs": [

         {

                 "objectType": "Titles",

                 "Ids": [

                         1040

                 ]

         }

 ],

 "Tasks": [

         {

                 "TaskType": "normalizeR128",

                 "TargetLUFS": -23,

                 "Position": 0,

                    "Mode" : "file"

         }

 ]

}

 

 

Time Stretch: Die Länge des Titel mit der Id 1040 wird um den Faktor 0.99 verändert (gekürzt) und im Opus-Format gespeichert.

{

 "Inputs": [

         {

                 "objectType": "Titles",

                 "Ids": [

                         1040

                 ]

         }

 ],

 "Tasks": [

         {

                 "TaskType": "timeStretch",

                 "Factor": 0.99

         }

 ],

      "Audioformat": {

         "AudioFormatType": "opus",

              "Samplerate": 24000

 }

}