Zum Inhalt springen

bash: Ausgabe Auswertung, und entsprechend reagieren


rabadag

Empfohlene Beiträge

Hallo Forum.

Ja bin neu hier, und stell mich auch gleich kurz vor.

Bin ein echt abgefressener Linux freak und begebe mich in neue gebiete das bash Scripte.

nun das klapp auch schon super und hab schon einige dinge zusammen gebaut.

nun aber stehe ich vor nen kleinen Herausforderung wo ich nicht weis wie es weiter geht.

Ich versuche mittels tsMuxer HDTV files automatisch passend für meine DM800 zu realisieren. Der tsMuxer ist ein Kommando Zeilen Converter, der MKV Files dreckt in .ts umwandelt.

Nun aber das Prob. der tsMuxer benötigt eine meta datei die zuerst erstellet werden muss. das heist, mann muss zuerst das mkv file auslesen und dan eine meta datei erstellen.

tsmuxer $file


Track ID:    1

Stream type: H.264

Stream ID:   V_MPEG4/ISO/AVC

Stream info: Profile: High@5.1  Resolution: 1280:544p  Frame rate: 23.976

Stream lang: ger

Track ID:    2

Stream type: AC3

Stream ID:   A_AC3

Stream info: Bitrate: 224Kbps Sample Rate: 48KHz Channels: 2

Stream lang: ger

Track ID:    3

Stream type: AC3

Stream ID:   A_AC3

Stream info: Bitrate: 640Kbps Sample Rate: 48KHz Channels: 6

Stream lang: eng

wie man sieht stehen da nun alle infos die benötig werden. Wie kann ich nun Anhang der Strems Track 1. Track 2, Track 3 entsprechend ein File erstellen? Ergebnis sollte so aussehen

V_MPEG4/ISO/AVC, ./file.mkv, level=4.1 insertSEI, contSPS, track=1, lang=ger

A_AC3, ./file.mkv, track=2, lang=ger

A_AC3, ./file.mkv, track=3, lang=eng

Die Werte Track=1,2 Level=4.1, lang=ger, sind variabel. Ich muss jeden Track mit Kriterien auswerten können und benötige zur Auswertung eines Tracks Videostrem: Stream type, Stream ID, Stream info, Stream lang, Audio Strems: Track ID, Stream type, Stream ID, Stream lang. Mittels der richtigen Auswertung kann ich dann mittels Echo ein File schreiben. Aber eben wie baut man eine solche Auswertung aus und wie schreib ich das ganze in ein array?


##### Track ID: 1

TESTMKV1=`/usr/bin/tsMuxeR $MKV | grep 'Track ID:^1'`

if [[ "$TESTMKV1" == *V_MPEG4/ISO/AVC ]] ; then

   Videostream="V_MPEG4/ISO/AVC,"

    if [[ "$TESTMKV1" == *lang:=ger ]] ; then

   Videolang="ger"

   else

   Videolang="eng"

   else 

   if [[ "$TESTMKV1" == *High@5.1 ]] ; then

   Videoformat="High@4.1,"


   fi

  fi

 fi

 	 echo "$Videostream "$MKV", $Videoformat insertSEI, contSPS, track=1, lang=$Videolang" > file.meta


Link zu diesem Kommentar
Auf anderen Seiten teilen

ich weiß nicht ob es der optimale weg ist, aber ich würde dafür awk nutzen..

(vgl. man awk)

ist denn das quellfíle immer gleich aufgebaut?

hmmm..

aber wie kann ich das mit awk auswerten.

Sagen wir mal ich hab im array dieses Ergebnis.


Track ID:    1

Stream type: H.264

Stream ID:   V_MPEG4/ISO/AVC

Stream info: Profile: High@5.1  Resolution: 1280:544p  Frame rate: 23.976

Stream lang: ger

Track ID:    2

Stream type: AC3

Stream ID:   A_AC3

Stream info: Bitrate: 224Kbps Sample Rate: 48KHz Channels: 2

Stream lang: ger

Track ID:    3

Stream type: AC3

Stream ID:   A_AC3

Stream info: Bitrate: 640Kbps Sample Rate: 48KHz Channels: 6

Stream lang: eng == *A_DTS ]]

wie trenne ich nun das array mit dem inhalt in z.b anzahl Tracks und werte die dann aus. Ich muss am Schluss jeden Track auf Inhalte testen und dementsprechend ein file schreiben. und am Schluss soll z.b für den Video Stream die Ausgabe so aussehen

#### Array inhalt Track1

Track ID:    1

Stream type: H.264

Stream ID:   V_MPEG4/ISO/AVC

Stream info: Profile: High@5.1  Resolution: 1280:544p  Frame rate: 23.976

Stream lang: ger


#### Die magische Auswertung


if  ' cat $array[*] | grep "Stream info" | grep High@5.1' 

then

VIDEOFORM="level=4.1"

else

VIDEOFORM=""



## Ausgabe in file

echo "$STREAMID, $filename, $VIDEOFORM, insertSEI, contSPS, $TRACKID, $LANG" > meta.meta


# Ergebins im File würde dan so aussehen müssen

V_MPEG4/ISO/AVC, ./file.mkv, level=4.1, insertSEI, contSPS, track=1, lang=ger

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...