[PHP]EXEC Command

Pagina: 1
Acties:
  • 832 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 18-09 22:29
Hallo,

Ik heb zojuist ffmpeg laten instaleren op onze server. Nu ga ik verder maar mijn commando loopt niet lekker. Heb al van alles geprobeerd, kale command zonder extra parameters, met parameters en steeds op ander plekken. Maar er word nog steeds geen output file gegegenereerd.

Het commando is als volgt:
PHP:
1
exec("user/bin/ffmpeg -i /home/gebruiker/domains/domein.be/public_html/Videofolder/Temp/".$Name." -r 24 -target flv /home/gebruiker/domains/domein.be/public_html/Videofolder/".$VideoID.".flv");


Wie weet wat er fout gaat, als ik echo geeft die niks weer.

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 09:36
Moet het niet /usr/bin/ffmpeg zijn?

Verder kun je error reporting op e_all zetten enzo...

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 09:24

MueR

Admin Tweakers Discord

is niet lief

Stomme vraag misschien, maar heb je wel CHMOD goed ingesteld voor die directory?
T-MOB schreef op maandag 17 september 2007 @ 16:11:
Moet het niet /usr/bin/ffmpeg zijn?
Dit kan het ook wel zijn ja. de map /user/ bestaat vaak niet in linux distros, tenzij je die handmatig hebt toegevoegd.

[ Voor 63% gewijzigd door MueR op 17-09-2007 16:14 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

http://nl3.php.net/manual/en/function.exec.php

Geef eens een extra variable mee, dump die dan eens misschien dat daar wat meer interesante info in staat.

Wat heb je eigenlijk gedaan om het probleem op te lossen?
Wat gebeurt er als je de commando op de command line uitvoert?
Heeft de web server genoeg rechten op iets uit te voeren?

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Welck
  • Registratie: April 2002
  • Laatst online: 05-05 11:58
Het antwoord hierop zou ik ook weleens willen weten; volgens mij is het echt zo'n newbie probleem waarop je nergens antwoord op kan vinden omdat het zo voor de hand ligt. Maarr iK ZiE het GewOon niet |:(

Ik heb thuis een WAMP draaien met ffmpeg. Op de console draait'ie netjes maar als ik de php exec probeer, exec("ffmpeg") of zelf passthru("ffmpeg"), en dan de output echo via php == NADA! Niks

Heeeellupie

Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
tip, kijk even naar ffmpeg-php voor je ffmpeg applicaties.. Ik heb er zelf geen ervaringen mee omdat ik windows heb :(.. Maar in de toekomst is het voor jou misschien een stuk handiger dan exec..

[ Voor 51% gewijzigd door ChessSpider op 06-05-2008 11:44 ]


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Welck schreef op dinsdag 06 mei 2008 @ 11:39:
Het antwoord hierop zou ik ook weleens willen weten; volgens mij is het echt zo'n newbie probleem waarop je nergens antwoord op kan vinden omdat het zo voor de hand ligt. Maarr iK ZiE het GewOon niet |:(

Ik heb thuis een WAMP draaien met ffmpeg. Op de console draait'ie netjes maar als ik de php exec probeer, exec("ffmpeg") of zelf passthru("ffmpeg"), en dan de output echo via php == NADA! Niks

Heeeellupie
Dat komt omdat je voor dit soort basic dingen ook de basic knowledge nodig hebt over hoe je een programma uitvoert. Probeer op je windows machine eens het volledige pad naar ffmpeg.exe incl. de .exe en met windows backslashes te exec'en ;)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Welck
  • Registratie: April 2002
  • Laatst online: 05-05 11:58
ChessSpider schreef op dinsdag 06 mei 2008 @ 11:42:
tip, kijk even naar ffmpeg-php voor je ffmpeg applicaties.. Ik heb er zelf geen ervaringen mee omdat ik windows heb :(.. Maar in de toekomst is het voor jou misschien een stuk handiger dan exec..
Mij was ffmpeg-php inderdaad al opgevallen (bij elke google over ffmpeg, php en exec verschijnt dat ding) maar ik wil alleen maar iets simpels doen (denk ik) En als ik al ffmpeg niet via exec kan regelen dan twijfel ik of dit werkt ;(

Acties:
  • 0 Henk 'm!

  • Welck
  • Registratie: April 2002
  • Laatst online: 05-05 11:58
SchizoDuckie schreef op dinsdag 06 mei 2008 @ 11:49:
[...]


Dat komt omdat je voor dit soort basic dingen ook de basic knowledge nodig hebt over hoe je een programma uitvoert. Probeer op je windows machine eens het volledige pad naar ffmpeg.exe incl. de .exe en met windows backslashes te exec'en ;)
Het heeft inderdaad te maken met je pad. Suf zeg, include files doet php namelijk wel relatief. Ik gooide net namelijk ffmpeg in www folder en toen kreeg ik netjes de output _/-\o_
Maar om het nou absoluut neer te zetten :/

Acties:
  • 0 Henk 'm!

  • Welck
  • Registratie: April 2002
  • Laatst online: 05-05 11:58
Absoluut pad dus aangeven (argh)

Zo:
$lastLine = exec("C:\\PROGRA~1\\FFMPEG\\ffmpeg");
echo "<br/>$lastLine<br/>";

of zo
$lastLine = exec("C:/PROGRA~1/FFMPEG/ffmpeg");
echo "<br/>$lastLine<br/>";

Tja...

Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
Welck schreef op dinsdag 06 mei 2008 @ 16:21:
Absoluut pad dus aangeven (argh)

Zo:
$lastLine = exec("C:\\PROGRA~1\\FFMPEG\\ffmpeg");
echo "<br/>$lastLine<br/>";

of zo
$lastLine = exec("C:/PROGRA~1/FFMPEG/ffmpeg");
echo "<br/>$lastLine<br/>";

Tja...
Geen van beide?
Probeer maar wat uit met file_exists net zolang totdat je het hebt.. Dit moet je zelf kunnen uitvogelen..

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Welck schreef op dinsdag 06 mei 2008 @ 14:16:
[...]


Het heeft inderdaad te maken met je pad. Suf zeg, include files doet php namelijk wel relatief. Ik gooide net namelijk ffmpeg in www folder en toen kreeg ik netjes de output _/-\o_
Maar om het nou absoluut neer te zetten :/
Hoe verwacht je anders dat PHP het terug kan vinden? Zo'n executable staat natuurlijk niet in je webroot, en zelfs als hij daar staat heb je daar niets aan, aangezien relatieve paden waarschijnlijk uitgaan van de map waarin PHP staat en niet van de map waar je website staat. Dat is niet meer dan logisch... Daarnaast, wat maakt het uit dat je een absoluut pad moet gebruiken? ffmpeg is nou niet bepaald een binary die op veel servers aanwezig is waardoor je code dus sowieso al gebonden is aan die server. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Welck
  • Registratie: April 2002
  • Laatst online: 05-05 11:58
Welck schreef op dinsdag 06 mei 2008 @ 16:21:
Absoluut pad dus aangeven (argh)

Zo:
$lastLine = exec("C:\\PROGRA~1\\FFMPEG\\ffmpeg");
echo "<br/>$lastLine<br/>";

of zo
$lastLine = exec("C:/PROGRA~1/FFMPEG/ffmpeg");
echo "<br/>$lastLine<br/>";

Tja...
Oh sorrie, wat ik bedoelde was dat het gelukt was met de code hierboven 8)
-NMe- schreef op dinsdag 06 mei 2008 @ 17:02:
[...]

Hoe verwacht je anders dat PHP het terug kan vinden? Zo'n executable staat natuurlijk niet in je webroot, en zelfs als hij daar staat heb je daar niets aan, aangezien relatieve paden waarschijnlijk uitgaan van de map waarin PHP staat en niet van de map waar je website staat. Dat is niet meer dan logisch... Daarnaast, wat maakt het uit dat je een absoluut pad moet gebruiken? ffmpeg is nou niet bepaald een binary die op veel servers aanwezig is waardoor je code dus sowieso al gebonden is aan die server. ;)
Maar mijn mooie code!! ;) Nou het ietwat verwarrende, vind ik, is dat als je de functie include() gebruikt, PHP heel blij is met een relatief pad terwijl exec() een absoluut pad wil. Staat ook niet echt duidelijk aangegeven op php.net. Of spreek ik noobiaans :X

Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
Welck schreef op dinsdag 06 mei 2008 @ 18:55:
[...]


Oh sorrie, wat ik bedoelde was dat het gelukt was met de code hierboven 8)


[...]


Maar mijn mooie code!! ;) Nou het ietwat verwarrende, vind ik, is dat als je de functie include() gebruikt, PHP heel blij is met een relatief pad terwijl exec() een absoluut pad wil. Staat ook niet echt duidelijk aangegeven op php.net. Of spreek ik noobiaans :X
PROGRA~1 is nog van Win9X, een DOS limitiate(?). Je kan volledige pad gebruiken. Ik weet niet of windows vista nog die verkorte paden ondersteund, maar zeker op het oog voor de toekomst wil je dat pad wel uitschrijven, het is veel leesbaarder ook.

Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 18-09 22:29
PHP:
1
2
$Command = "ffmpeg -i /home/username/domains/iets.nl/public_html/Videofolder/Temp/".$Name." -ar 11025  /home/username/domains/iets.nl/public_html/Videofolder/".$VideoID.".flv";
echo shell_exec($Command);


Zo doe ik het, en het werkt.

Edit:

Ik ben scheel, is mijn eigen topic.. Ben echt slecht.. |:(

[ Voor 12% gewijzigd door Depress op 06-05-2008 23:32 ]

Pagina: 1