- Mitglied seit
- 04. Jan 2012
- Beiträge
- 5.381
- Punkte für Reaktionen
- 1.195
- Punkte
- 234
Hallo zusammen,
für synOTR muss ich die Framerate mit Dezimalstellen errechnen. Dazu verwende ich bc. Das klappt auch gut, nur bei einem User mit einer DS116 (ARMv7) wirft bc eine leere Zeichenkette aus. Ruft man dessen Hilfe auf, scheint es aber zu arbeiten. Seht ihr einen Fehler?
Das ist der gesamte Aufruf, der sonst überall funktioniert - so sollte es also eigentlich sein:
Eine Kurze Analyse auf der Problem-DS:
In der Datei "$ffprobeInfo" filtere ich die Variable "r_frame_rate" heraus.
(So sieht die Zeile aus: "r_frame_rate": "30000/1001",)
Hochkommas filtern:
Wert berechnen (praktischer Weise wird der Wert ja bereits als Bruch vorgegeben):
Ausgegeben wird ein leerer String.
Ruft man die Hilfe von bc auf, kommt die erwartete Ausgabe:
Falls es jemand testen möchte, habe ich hier zwei Versionen von bc (ARMv7):
bc selbst kompiliert
bc vom Raspiprojekt
Seht ihr noch eine andere Möglichkeit der Berechnung (mit Dezimalstellen) auf der DS?
für synOTR muss ich die Framerate mit Dezimalstellen errechnen. Dazu verwende ich bc. Das klappt auch gut, nur bei einem User mit einer DS116 (ARMv7) wirft bc eine leere Zeichenkette aus. Ruft man dessen Hilfe auf, scheint es aber zu arbeiten. Seht ihr einen Fehler?
Das ist der gesamte Aufruf, der sonst überall funktioniert - so sollte es also eigentlich sein:
Rich (BBCode):
fps=`echo "$ffprobeInfo" | jq '.streams[0].r_frame_rate' | sed "s/\"//g" | bc -l | awk '{printf "%.2f\n", $1}' `
echo $fps
29.97
Eine Kurze Analyse auf der Problem-DS:
In der Datei "$ffprobeInfo" filtere ich die Variable "r_frame_rate" heraus.
(So sieht die Zeile aus: "r_frame_rate": "30000/1001",)
Rich (BBCode):
fps=`echo "$ffprobeInfo" | jq '.streams[0].r_frame_rate'`
echo $fps
"30000/1001"
Hochkommas filtern:
Rich (BBCode):
fps=`echo "$fps" | sed "s/\"//g" `
echo $fps
30000/1001
Wert berechnen (praktischer Weise wird der Wert ja bereits als Bruch vorgegeben):
Rich (BBCode):
fps=`echo "$fps" | bc -l `
echo $fps
Ruft man die Hilfe von bc auf, kommt die erwartete Ausgabe:
Rich (BBCode):
bc --help
usage: /volume1/Downloads/OTR/synOTR/app/binARMv7l/bc [options] [file ...]
-h --help print this usage and exit
-i --interactive force interactive mode
-l --mathlib use the predefine math routnes
-q --quiet don't print initial banner
-s --standard non-standard bc constructs are errors
-w --warn warn about non-standard bc constructs
-v --version print version information and exit
Falls es jemand testen möchte, habe ich hier zwei Versionen von bc (ARMv7):
bc selbst kompiliert
bc vom Raspiprojekt
Seht ihr noch eine andere Möglichkeit der Berechnung (mit Dezimalstellen) auf der DS?