bc rechnet nicht … (oder Alternative?)

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

geimist

Benutzer
Sehr erfahren
Maintainer
Add-on Developer
Registriert
04. Jan. 2012
Beiträge
5.975
Reaktionspunkte
1.724
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:
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
Ausgegeben wird ein leerer String.

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?
 
gawk schon probiert?

Rich (BBCode):
gawk '{print $0/3.22}' <<< 44.338
 
nö, noch nicht probiert - hab doch keine Ahnung :rolleyes:

Klasse, es funktioniert auf jeden Fall schon mal bei mir.

Danke schön
 
Und auf der DS116 hats mit gawk auch geklappt?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat