Liebe Gemeinde,
ich möchte den Output von ffprobe auswerten und dann weiter verarbeiten.
Dies geschieht bisher so:
die durch ffprob erzeugte Datei sieht so aus:
mit Zeile 16 im Code gibt es eine Fehlermeldung
Spoiler anzeigen
Mit Zeile 18 wird zwar alles aufgelistet, jedoch ist dann "tags" der KEY und alle Unterkeys (encoder ,creation_time) werden dann als der zugehörige VALUE angezeigt und nicht wie gewünscht ebenfalls als KEY / VALUE Paar aufgelistet.
Ich bin vor lauter sucherei schon ganz mischugge und brauche mal eure Hilfe.
MfG
ich möchte den Output von ffprobe auswerten und dann weiter verarbeiten.
Dies geschieht bisher so:
VB.NET-Quellcode
- Private Sub GetInfos()
- Dim sStreamFullName As String
- Dim JSON As String
- Dim Quote = Convert.ToChar(34)
- Using p As New Process
- p.StartInfo.FileName = "ffprobe.exe"
- p.StartInfo.Arguments = String.Format(" -v quiet -print_format json -show_chapters -show_format {0}{1}{0}", Quote, sStreamFullName)
- p.StartInfo.RedirectStandardOutput = True
- p.StartInfo.CreateNoWindow = True
- p.StartInfo.UseShellExecute = False
- p.Start()
- JSON = p.StandardOutput.ReadToEnd()
- End Using
- Dim jobj = JObject.Parse(JSON)
- Dim Chapterprops = JsonConvert.DeserializeObject(Of List(Of Dictionary(Of String, Object)))(jobj("chapters").ToString)
- Dim formatprops = JsonConvert.DeserializeObject(Of List(Of Dictionary(Of String, Object)))(jobj("format").ToString)
- 'Dim formatprops = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(jobj("format").ToString) --> --> kein Fehler aber "tags" als Key und alle Unterkeys als Value
- End Sub
die durch ffprob erzeugte Datei sieht so aus:
HTML-Quellcode
- {
- "chapters": [
- {
- "id": 56893180208930440,
- "time_base": "1/1000000000",
- "start": 0,
- "start_time": "0.000000",
- "end": 274760000000,
- "end_time": "274.760000",
- "tags": {
- "title": "Chapter 01"
- }
- },
- {
- "id": 3350239497436273296,
- "time_base": "1/1000000000",
- "start": 274760000000,
- "start_time": "274.760000",
- "end": 2927000000000,
- "end_time": "2927.000000",
- "tags": {
- "title": "Chapter 02"
- }
- }
- ],
- "format": {
- "filename": "D:\\Users\\test.mkv",
- "nb_streams": 3,
- "nb_programs": 0,
- "format_name": "matroska,webm",
- "format_long_name": "Matroska / WebM",
- "start_time": "0.000000",
- "duration": "2927.000000",
- "size": "3195421199",
- "bit_rate": "8733641",
- "probe_score": 100,
- "tags": {
- "encoder": "libm win(x64-release)",
- "creation_time": "2022-06-01T16:55:27.000000Z"
- }
- }
- }
mit Zeile 16 im Code gibt es eine Fehlermeldung
Newtonsoft.Json.JsonSerializationException: "Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[System.Collections.Generic.Dictionary`2[System.String,System.Object]]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
Path 'filename', line 2, position 13."
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
Path 'filename', line 2, position 13."
Mit Zeile 18 wird zwar alles aufgelistet, jedoch ist dann "tags" der KEY und alle Unterkeys (encoder ,creation_time) werden dann als der zugehörige VALUE angezeigt und nicht wie gewünscht ebenfalls als KEY / VALUE Paar aufgelistet.
Ich bin vor lauter sucherei schon ganz mischugge und brauche mal eure Hilfe.
MfG