beispiel-programme_in_go
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| beispiel-programme_in_go [2023-01-14 01:44:59] – [Golang os exec Examples: Command Start and Run] manfred | beispiel-programme_in_go [2023-01-17 00:05:55] (aktuell) – [Verwendung einer Bibliothek] manfred | ||
|---|---|---|---|
| Zeile 910: | Zeile 910: | ||
| ... | ... | ||
| + | //In der Praxis wird man eine solche Aufgabe nicht so lösen, sondern dafür eine entsprechende Bibliothek einsetzen.// | ||
| + | |||
| + | |||
| + | === Verwendung einer Bibliothek === | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <file go FFprobeTest.go> | ||
| + | package main | ||
| + | |||
| + | import ( | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | " | ||
| + | ) | ||
| + | |||
| + | func string2int(s string) int { | ||
| + | i, err := strconv.Atoi(s) | ||
| + | if err != nil { | ||
| + | i = 0 | ||
| + | } | ||
| + | return i | ||
| + | } | ||
| + | |||
| + | func main() { | ||
| + | var film = os.Args[1] | ||
| + | |||
| + | ctx, cancelFn := context.WithTimeout(context.Background(), | ||
| + | defer cancelFn() | ||
| + | |||
| + | data, err := ffprobe.ProbeURL(ctx, | ||
| + | if err != nil { | ||
| + | log.Panicf(" | ||
| + | } | ||
| + | |||
| + | // | ||
| + | // | ||
| + | |||
| + | for i, s := range data.Streams { | ||
| + | codectype := s.CodecType | ||
| + | sprache, _ := s.TagList.GetString(" | ||
| + | fmt.Printf(" | ||
| + | |||
| + | if " | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | |||
| + | drehung := 0 | ||
| + | rotation, | ||
| + | drehlength := len([]rune(rotation)) | ||
| + | if drehlength > 0 { | ||
| + | drehung = string2int(rotation) | ||
| + | } | ||
| + | fmt.Printf(" | ||
| + | |||
| + | spieldauer := 0 | ||
| + | duration, | ||
| + | durlength := len([]rune(duration)) | ||
| + | if durlength > 0 { | ||
| + | var hms [3]int | ||
| + | rsplit := regexp.MustCompile(" | ||
| + | for g, h := range rsplit.Split(duration, | ||
| + | hms[g] = string2int(h) | ||
| + | } | ||
| + | |||
| + | // hms -> H:M:S -> Stunde: | ||
| + | spieldauer = hms[0]*3600 + hms[1]*60 + hms[2] | ||
| + | } | ||
| + | |||
| + | fmt.Printf(" | ||
| + | |||
| + | // Alle TAGs aus dem Container anzeigen | ||
| + | //for n, t := range s.TagList { | ||
| + | // | ||
| + | //} | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | > go build FFprobeTest.go | ||
| + | > ./ | ||
| + | Spur: 0, Typ: video, Sprache: eng | ||
| + | Spur: 0, Typ: video, Width: 720 | ||
| + | Spur: 0, Typ: video, Height: 576 | ||
| + | Spur: 0, Typ: video, PAR: 16:15 | ||
| + | Spur: 0, Typ: video, DAR: 4:3 | ||
| + | Spur: 0, Typ: video, Level: 8 | ||
| + | Spur: 0, Typ: video, FieldOrder: tt | ||
| + | Spur: 0, Typ: video, FPS: 25/1 | ||
| + | Spur: 0, Typ: video, avg FSP: 25/1 | ||
| + | Spur: 0, Typ: video, Drehung: 0 Grad | ||
| + | Spur: 0, Typ: video, Spieldauer: 122 Sekunden | ||
| + | Spur: 1, Typ: audio, Sprache: eng | ||
| + | Spur: 2, Typ: subtitle, Sprache: eng | ||
| + | Spur: 3, Typ: subtitle, Sprache: ger | ||
| + | </ | ||
/home/http/wiki/data/attic/beispiel-programme_in_go.1673660699.txt · Zuletzt geändert: von manfred
