... Ich hab das bei mir so gefriemelt, dass ich per %StreamCount% für Video und %AudioCount% für Audio schaue wieviele Streams ein Video hat und dann Strings entsprechend wenn möglich halbiere / drittele etc und oder die als String (%BitRate/String%) ausgegebenen Bitraten ebenfalls aufspalte, zb per StringSplit() usw.
Wenn man den String nicht Symmetrisch Teilen kann, hat man halt Probleme.
Aus den den Audiosprachen für 2 Tonspuren "germanenglisch" wird dann getrennt "germane" und "nglisch" ...
Ich habe noch ein bisschen mit der DLL#Fkt. herum gespielt ... try and error ... so wie man es lernt, wie man es nicht machen soll
Auf jeden Fall habe ich es jetzt so gelöst:
; StreamIDs herausfinden
local $daten_typ[4][3] = [["General",0],["Video",1],["Audio",2],["Text",3]]
for $n=0 to 3
DllCall($hDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", $daten_typ[$n][0] & ";%StreamCount%")
$tmp_info = DllCall($hDLL, "wstr", "MediaInfo_Inform", "ptr", $Handle[0], "int", 0)
$SteamID = StringLeft($tmp_info[0], 1) ; bei Mehrfachnennungen nur die erste Zahl, geht nur bis 9 Streams!
next
; ...
[/autoit][autoit][/autoit][autoit]; $StreamKind : General, Video, Audio oder Text ID .. also 0,1,2,3 oder 4
; $SteamID : Beginnent bei 0 ... wenn es 2 Tonspuren gibt, dann gibt es bei Audio: 1,2
; $Parameter : Was man für Info raus bekommen möchte
$tmp_info = DllCall($hDLL, "wstr", "MediaInfo_Get", "ptr", $Handle[0], "int", $StreamKind, "int", $SteamID, "wstr", $Parameter, "int", 1, "int", 0)
Ich frage zuerst ab, wie viele Stream es je Typ gibt und dann kann man die gezielte Info abrufen!