[PHP] ikrijg deze (voorbeeld) code niet werkend...

Pagina: 1
Acties:
  • 921 views

Vraag


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Graag zou ik van een bepaalde audio-file (MP3-bestandje) de audio-data hebben zodat ik daar vervolgens dingen mee kan doen. Een voorbeeld is de audio grafisch weergeven in de vorm van wave-data in een PNG-bestand.

Ik heb daarvoor deze software gevonden: https://github.com/maximal/audio-waveform-php

Het ZIP-bestand dat ik van GitHub heb gedownload heb ik uitgepakt op mijn NAS in de WEB-directory.
Als "test scriptje" heb ik dit gemaakt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<?php

require_once 'Waveform.php';

use maximal\audio\Waveform;

$waveform = new Waveform('track.mp3');

Waveform::$color = [255, 0, 0, 0.5];
$success = $waveform->getWaveform('thumbnail.png', 1024, 512);

?>


De directory op de NAS ziet er zo uit:

Afbeeldingslocatie: https://lumatronix.nl/FOK/audio-waveform.png

Er komt echter een foutmelding:
Fatal error: Uncaught Exception: Failed to get audio info. Error: sh: sox: command not found in /volume1/web/audio-waveform/Waveform.php:76 Stack trace: #0 /volume1/web/audio-waveform/Waveform.php(91): maximal\audio\Waveform->getInfo() #1 /volume1/web/audio-waveform/Waveform.php(124): maximal\audio\Waveform->getChannels() #2 /volume1/web/audio-waveform/test.php(12): maximal\audio\Waveform->getWaveform('thumbnail.png', 1024, 512) #3 {main} thrown in /volume1/web/audio-waveform/Waveform.php on line 76
En ik snap niet echt waar die vandaan zou moeten komen... 8)7

Het heeft niets van het aanmaken van de PNG te maken, want ook als ik dit doe:

code:
1
2
$width = 1024;
$data = $waveform->getWaveformData($width);


Komt er een foutmelding:
Fatal error: Uncaught Exception: Failed to get audio info. Error: sh: sox: command not found in /volume1/web/audio-waveform/Waveform.php:76 Stack trace: #0 /volume1/web/audio-waveform/Waveform.php(91): maximal\audio\Waveform->getInfo() #1 /volume1/web/audio-waveform/Waveform.php(195): maximal\audio\Waveform->getChannels() #2 /volume1/web/audio-waveform/test.php(17): maximal\audio\Waveform->getWaveformData(1024) #3 {main} thrown in /volume1/web/audio-waveform/Waveform.php on line 76
Wat doe ik verkeerd, en nog belangrijker: hoe krijg ik dit werkend?

Alvast dank voor het meedenken _/-\o_


[edit]

Ah ships, ik was de titel nog aan het verbeteren, maar drukte ineens op Enter waardoor hij het topic al postte :'(

[ Voor 3% gewijzigd door Atmoz op 26-08-2021 12:23 ]

Alle reacties


Acties:
  • +2 Henk 'm!

  • Brummetje
  • Registratie: December 2003
  • Niet online

Brummetje

Ginkeltjes

Je hebt SOX wel geïnstalleerd ?
https://pypi.org/project/sox/

Acties:
  • +1 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
heb je de "install" stappen gevolgd?
sudo apt install sox libsox-fmt-all
sudo apt install php-gd

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Nee.

Moet dat dan eerst echt?

Werkt dit alles NIET zonder iets te "installeren"? Want daarvan weet ik niet hoe dat moet met PHP, vandaar ook dat ik die screenshot van de directory erbij deed.

[edit]
Juup schreef op donderdag 26 augustus 2021 @ 12:27:
heb je de "install" stappen gevolgd?
sudo apt install sox libsox-fmt-all
sudo apt install php-gd
Nee. Daarvan weet ik niet hoe dat moet...
En ik moet eerlijk bekennen dat ik al ZOOOOOOOOO VAAK tegen dit probleem aan loop :X

Ik los het altijd op door gewoon de benodigde files in de directory's te zetten.
Met andere projecten lukte dit tot nu altijd goed.

[ Voor 39% gewijzigd door Atmoz op 26-08-2021 12:29 ]


Acties:
  • +2 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23-09 14:00
Atmoz schreef op donderdag 26 augustus 2021 @ 12:28:
[...]


Nee.

Moet dat dan eerst echt?

Werkt dit alles NIET zonder iets te "installeren"? Want daarvan weet ik niet hoe dat moet met PHP, vandaar ook dat ik die screenshot van de directory erbij deed.
In de foutmelding staat vrijwel letterlijk dat sox niet kan worden gevonden. Dus ja, dat is nodig.
http://sox.sourceforge.net

Acties:
  • +3 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Atmoz schreef op donderdag 26 augustus 2021 @ 12:28:
[...]


Nee.

Moet dat dan eerst echt?
Als dat in de installatie instructies staat lijkt me dat wel he? De foutmelding is ook kristalhelder:
sox: command not found

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Hmzzzz, het lijkt erop dat ik dit maar eens moet gaan leren, want het is iedere keer weer dat ik hier tegenaan loop.

Ik heb al eens iets met Composer lopen klooien, maar kreeg het op de een of andere manier nooit werkend.

Thanks voor de snelle reacties.

Als iemand me een hele makkelijke tutorial zou kunnen aanraden over hoe ik dingen moet installeren, dan ben ik daar zeer dankbaar voor :)

Acties:
  • +1 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Atmoz schreef op donderdag 26 augustus 2021 @ 12:31:
Hmzzzz, het lijkt erop dat ik dit maar eens moet gaan leren, want het is iedere keer weer dat ik hier tegenaan loop.

Ik heb al eens iets met Composer lopen klooien, maar kreeg het op de een of andere manier nooit werkend.

Thanks voor de snelle reacties.

Als iemand me een hele makkelijke tutorial zou kunnen aanraden over hoe ik dingen moet installeren, dan ben ik daar zeer dankbaar voor :)
Het is gewoon basis systeembeheer stuff, wat je exact moet doen staat zelfs in de documentatie aangegeven. Ook Composer is een programma dat je installeert lokaal op een machine, waarvoor ook installatie instructies beschikbaar zijn.

[ Voor 3% gewijzigd door CH4OS op 26-08-2021 12:42 ]


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
CH4OS schreef op donderdag 26 augustus 2021 @ 12:41:
[...]
Het is gewoon basis systeembeheer stuff, wat je exact moet doen staat zelfs in de documentatie aangegeven. Ook Composer is een programma dat je installeert lokaal op een machine, waarvoor ook installatie instructies beschikbaar zijn.
Het probleem is dat het een (Synology) NAS is...
Op een (lokale) computer zouden dingen heel anders c.q. makkelijker gaan.

Ik heb het via Composer geprobeerd net:

Afbeeldingslocatie: https://lumatronix.nl/FOK/Putty.png

Maar krijg nog steeds dezelfde foutmelding.


[edit]

Hmzz, ik zie wel dat het commando "sudo apt install sox libsox-fmt-all" niet gewerkt heeft...
Dan is het opzich logjsch dat het nog niet helemaal werkt O-)

[ Voor 12% gewijzigd door Atmoz op 26-08-2021 12:45 ]


Acties:
  • +1 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:37
Atmoz schreef op donderdag 26 augustus 2021 @ 12:31:
Hmzzzz, het lijkt erop dat ik dit maar eens moet gaan leren, want het is iedere keer weer dat ik hier tegenaan loop.

Ik heb al eens iets met Composer lopen klooien, maar kreeg het op de een of andere manier nooit werkend.

Thanks voor de snelle reacties.

Als iemand me een hele makkelijke tutorial zou kunnen aanraden over hoe ik dingen moet installeren, dan ben ik daar zeer dankbaar voor :)
tip. Lees de documentatie.. Daar staat echt alles in wat je zou moeten weten

en wat betreft je laatste reactie boven die van mij. Daar staat ook vrij letterlijk wat er mis gaat.. Google is je vriend in deze

[ Voor 10% gewijzigd door Webgnome op 26-08-2021 12:48 ]

Strava | AP | IP | AW


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Webgnome schreef op donderdag 26 augustus 2021 @ 12:48:
[...]


tip. Lees de documentatie.. Daar staat echt alles in wat je zou moeten weten

en wat betreft je laatste reactie boven die van mij. Daar staat ook vrij letterlijk wat er mis gaat.. Google is je vriend in deze
Ik vind het gewoon ZEER lastig omdat altijd dingen niet lijken te werken.
In de documentatie staat bijvoorbeeld:

"sudo apt install sox libsox-fmt-all"

Maar "apt" werkt op de NAS niet....

Ik kan (al jaren) niet begrijpen hoe jullie dit allemaal zo goed lukt steeds....
Dit zijn een van de ergste dingen waar ik tegenaan loop. Het is mega frustrerend, en kost nog véél meer tijd (die ik niet heb).

Voor je het weet van je weer een dag verder om uit te zoeken wat "apt" voor de NAS is 8)7

Acties:
  • +1 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 03-10 10:36

Johnny

ondergewaardeerde internetguru

Composer is een package manager voor PHP libraries. Het leest het bestand composer.json uit en download die ibraries en plaatst ze in de vender folder. Je kan het niet gebruiken om applicaties (zoals sox) te installeren.

sox is een programma dat los staat van PHP. De Maximal PHP library roept dit programma aan, maar dan moet het wel geinstalleerd zijn.

Je hebt het geprobeerd via "apt" wat een package manager voor Linuxprogramma's is maar de Linuxdistributie op jouw NAS heeft dat niet dus krijg je de melding "Command not found". Je moet dus weten hoe je op jouw NAS dingen kan installeren.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Johnny schreef op donderdag 26 augustus 2021 @ 12:52:
Composer is een package manager voor PHP libraries. Het leest het bestand composer.json uit en download die ibraries en plaatst ze in de vender folder. Je kan het niet gebruiken om applicaties (zoals sox) te installeren.

sox is een programma dat los staat van PHP. De Maximal PHP library roept dit programma aan, maar dan moet het wel geinstalleerd zijn.

Je hebt het geprobeerd via "apt" wat een package manager voor Linuxprogramma's is maar de Linuxdistributie op jouw NAS heeft dat niet dus krijg je de melding "Command not found". Je moet dus weten hoe je op jouw NAS dingen kan installeren.
Thanks! Dit is goede/fijne informatie. Echt heel erg bedankt _/-\o_ 8)

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Ok, dat viel nog mee :9 SOX staat inmiddels op de NAS geïnstalleerd (mocht het iemand ooit helpen ---> ik heb het op deze manier gedaan)

SOX lijkt correct geïnstalleerd te zijn, want als ik "SOX" intyp in Putty, dan komt dit:

Afbeeldingslocatie: https://lumatronix.nl/FOK/SOX-op-NAS.png

Daarnaast heb ik ook "php-gd" (stond ook in de documentatie) op de NAS geïnstalleerd.

Alleen als ik dan "php-gd" in Putty ingeef, dan komt er een foutmelding:
-sh: php-gd: command not found
Het installeren leek wel echt gelijkt (geen foutmeldingen ofzo gezien).

Maar ik denk dat het dus nog steeds niet "goed zit" wat betreft SOX zelf. Want nog steeds komt deze foutmelding:
Fatal error: Uncaught Exception: Failed to get audio info. Error: sh: sox: command not found in /volume1/web/audio-waveform/Waveform.php:76 Stack trace: #0 /volume1/web/audio-waveform/Waveform.php(91): maximal\audio\Waveform->getInfo() #1 /volume1/web/audio-waveform/Waveform.php(124): maximal\audio\Waveform->getChannels() #2 /volume1/web/audio-waveform/test.php(12): maximal\audio\Waveform->getWaveform('thumbnail.png', 1024, 512) #3 {main} thrown in /volume1/web/audio-waveform/Waveform.php on line 76
Ik neem voor het gemak even aan dat ik niet m'n hele NAS opnieuw hoef te starten, right?

Iemand nog een idee hoe dit verder op te lossen?

Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Atmoz schreef op donderdag 26 augustus 2021 @ 13:28:
Alleen als ik dan "php-gd" in Putty ingeef, dan komt er een foutmelding:
php-gd is geen executable.

Ik zou gewoon eens beginnen met je in te lezen in de materie i.p.v. in het wildeweg commando's uit te voeren en copy/pasten van god-knows-where vandaan. Even een stapje terug doen. Leren lopen voor je gaat rennen. Dat soort dingen. Probeer te begrijpen wat je aan 't doen bent en waarom.

[ Voor 5% gewijzigd door RobIII op 26-08-2021 13:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Atmoz schreef op donderdag 26 augustus 2021 @ 12:51:
Ik vind het gewoon ZEER lastig omdat altijd dingen niet lijken te werken.
Misschien wat lomp; maar dingen werken niet 'zomaar'. Je probeert vanalles uit zonder te snappen wat je doet. Gewoon domweg dingen overslaan in een handleiding, of ze uitproberen en dan gewoon alsnog overslaan als het niet werkt, is gewoon tijdsverspilling natuurlijk.

Je kunt niet zelf met PHP e.d. aan de slag als je hierin niet een mindset switch maakt. Anders ben je hier nog jaren topics aan het openen.

https://niels.nu


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
@RobIII thanks!

En ik ben het 100% met je eens dat de manier zoals je zegt beter is.

Maar hoe graag ik ook zou willen induiken op deze (interessante) materie: is er absoluut geen tijd voor!
Ik werk iedere dag 16 uur, en stop het liefst m'n tijd in dingen waar ik goed/beter in ben.

Ik hoopte dat ik hier hulp zou kunnen krijgen waardoor ik het "quick & dirty" kon oplossen zodat het sowieso zou werken.

De achterliggende gedachte HOE iets werkt vind ik zeker ook zeer interessant, maar zoals gezegd: daar is nu echt geen tijd voor. En ookal had ik er wel tijd voor; ik ben zo ontzettend druk dat ik het allemaal weer zou vergeten.... Dus dan maar "later" eens wat dieper erop induiken en voor nu proberen het gewoon werkend te krijgen.

Ik zou dus ook serieus VERSCHIRKKELIJK blij zijn als ik het vandaag werkend zou krijgen :D O+
Hydra schreef op donderdag 26 augustus 2021 @ 13:52:
[...]


Misschien wat lomp; maar dingen werken niet 'zomaar'. Je probeert vanalles uit zonder te snappen wat je doet. Gewoon domweg dingen overslaan in een handleiding, of ze uitproberen en dan gewoon alsnog overslaan als het niet werkt, is gewoon tijdsverspilling natuurlijk.

Je kunt niet zelf met PHP e.d. aan de slag als je hierin niet een mindset switch maakt. Anders ben je hier nog jaren topics aan het openen.
Je hebt gelijk. En het is niet lomp, maar gewoon de waarheid ;)

Maar ik zie op dit moment geen andere oplossing.

Ik ben op extreem veel gebieden dingen aan het uitzoeken/doen, en het hoeft op dit moment alleen maar te werken. Dit hele PHP gebeuren is iets waar ik het minste vanaf weet... als ik dit eerst allemaal onder de knie zou moeten krijgen, dan stort alles in elkaar omdat er gewoonweg geen tijd voor is.


[edit]

ontopic:

Hoe zou het kunnen komen dat in de PHP nog steeds de foutmelding komt terwijl SOX wél (goed) geïnstalleerd is?
Fatal error: Uncaught Exception: Failed to get audio info. Error: sh: sox: command not found in /volume1/web/audio-waveform/Waveform.php

[ Voor 7% gewijzigd door Atmoz op 26-08-2021 13:58 ]


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Atmoz schreef op donderdag 26 augustus 2021 @ 12:51:
[...]


Ik vind het gewoon ZEER lastig omdat altijd dingen niet lijken te werken.
In de documentatie staat bijvoorbeeld:

"sudo apt install sox libsox-fmt-all"

Maar "apt" werkt op de NAS niet....

Ik kan (al jaren) niet begrijpen hoe jullie dit allemaal zo goed lukt steeds....
Dit zijn een van de ergste dingen waar ik tegenaan loop. Het is mega frustrerend, en kost nog véél meer tijd (die ik niet heb).

Voor je het weet van je weer een dag verder om uit te zoeken wat "apt" voor de NAS is 8)7
Apt is inderdaad niet overal aanwezig. Het is de Linux package manager voor Debian-based Linux distributies. Er zijn er meer. Wellicht is het dus geen gek idee om het besturingssysteem van jouw NAS verder te bestuderen en de ins- en outs ervan te gaan kennen.

  • CyBeRSPiN
  • Registratie: Februari 2001
  • Laatst online: 01:38

CyBeRSPiN

sinds 2001

Ik zou als ik jou was niet zomaar wat gaan aanrommelen met software op je NAS als je je NAS functioneel wilt houden.
Voor dit soort projectjes kun je beter een ander servertje gebruiken met linux erop. Als je teveel wijzigt heb je kans dat op een gegeven moment je NAS niet meer kan updaten of erger nog niet meer goed opstart.
Synology is echt geweldig, maar het OS is niet zo fijn om random Linux projectjes mee te proberen.
Of je zou met virtualbox een Linux distro kunnen starten (aangenomen dat je eigen systeem Windows draait). Dan kun je ongestraft aankloten :)
Hier een van de vele tutorials: https://itsfoss.com/install-linux-in-virtualbox/
Vervolgens kun je die 'apt get' commando's probleemloos volgen.

[ Voor 11% gewijzigd door CyBeRSPiN op 26-08-2021 14:04 ]


  • Johnny
  • Registratie: December 2001
  • Laatst online: 03-10 10:36

Johnny

ondergewaardeerde internetguru

Atmoz schreef op donderdag 26 augustus 2021 @ 13:56:
@RobIII thanks!

En ik ben het 100% met je eens dat de manier zoals je zegt beter is.

Maar hoe graag ik ook zou willen induiken op deze (interessante) materie: is er absoluut geen tijd voor!
Ik werk iedere dag 16 uur, en stop het liefst m'n tijd in dingen waar ik goed/beter in ben.

Ik hoopte dat ik hier hulp zou kunnen krijgen waardoor ik het "quick & dirty" kon oplossen zodat het sowieso zou werken.

De achterliggende gedachte HOE iets werkt vind ik zeker ook zeer interessant, maar zoals gezegd: daar is nu echt geen tijd voor. En ookal had ik er wel tijd voor; ik ben zo ontzettend druk dat ik het allemaal weer zou vergeten.... Dus dan maar "later" eens wat dieper erop induiken en voor nu proberen het gewoon werkend te krijgen.

Ik zou dus ook serieus VERSCHIRKKELIJK blij zijn als ik het vandaag werkend zou krijgen :D O+


[...]


Je hebt gelijk. En het is niet lomp, maar gewoon de waarheid ;)

Maar ik zie op dit moment geen andere oplossing.

Ik ben op extreem veel gebieden dingen aan het uitzoeken/doen, en het hoeft op dit moment alleen maar te werken. Dit hele PHP gebeuren is iets waar ik het minste vanaf weet... als ik dit eerst allemaal onder de knie zou moeten krijgen, dan stort alles in elkaar omdat er gewoonweg geen tijd voor is.


[edit]

ontopic:

Hoe zou het kunnen komen dat in de PHP nog steeds de foutmelding komt terwijl SOX wél (goed) geïnstalleerd is?


[...]
Volgens mij is het meest waarschijnlijke dat PHP zoekt in andere mappen naar de executable "sox"

Bij het installeren van sox is er ergens een bestand met de naam "sox" neergezet in een map die in de path variable van jouw gebruiker (admin) staat. Als je "sox" (of een ander command intypt) wordt er in die mappen gekeken of daar een bestand staat dat executable is en geopend, als het niet wordt gevonden krijg je een foutmelding.

Je kan zien welke mappen er in jouw path staan met dit command:

code:
1
echo $PATH


Als daar "." in staat betekent dat ook de huidige pad. Je huidige pad kan je zien met het command "pwd" (path working direcory) en met "cd" (change directory) veranderen en met "ls" (list) zien welke bestanden er in staan.

Je moet zoeken waar het bestand "sox" staat.

In Waveform.php staat een variable "soxCommand" waar "sox" in staat. Als je het pad weet kan je dat er voor plakken en dan kan PHP het command waarschijnlijk wel vinden.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:26

Creepy

Tactical Espionage Splatterer

Maar hoe graag ik ook zou willen induiken op deze (interessante) materie: is er absoluut geen tijd voor!
Ik werk iedere dag 16 uur, en stop het liefst m'n tijd in dingen waar ik goed/beter in ben.
Nee dat is lekker. Hier de boel als helpdesk gebruiken, info krijgen van mensen die in hun vrije tijd je willen helpen en dan zeggen dat je zelf geen tijd hebt om je er iets beter in te verdiepen omdat je liever je tijd stopt in wat anders? Stop dan gewoon met het werkend krijgen van een PHP script. Het is ook nog eens een niet zelf geschreven PHP script, en daarvoor moet je bij support toch echt zijn bij de maker. Ff snel hier een oplossing scoren is niet de bedoeling van het forum. We vragen juist dat je zelf er wat tijd en moeite instopt. Tijd en moeite die jij niet wil maken. Dat moet je zelf weten, maar dan zal ik toch echt je topic moeten sluiten.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.