Jump to content

Archived

This topic is now archived and is closed to further replies.

ven0m

Executing Run/CMD commands with PHP

Recommended Posts

Hey guys. Here's the thing, i'v decided to experiment a bit, and create a mini version of you tube, just for the sake of it, to understand how it works. Now, the basic idea, is for the script to convert video files into FLV files, and stream them. As far as i understood, the way to do that, is using FFMPEG and a command, which should be ran through CMD - ffmpeg -i file.avi file.flv

The question is - how do i get PHP script to execute it for me?
As far as i understood, it's done with one of several functions - exec or system.
Can anybody help me out please?

I'v tried running the following script:

[code]<?php
  $cmd = "ipconfig";
  system($cmd,$return_value);
  ($return_value == 0) or die("returned an error: $cmd");
?>
[/code]

But for some reason, it just wont run, causing the browser to stop at some point, while loading

Share this post


Link to post
Share on other sites
Without specifying an absolute path, the command may not be found. What's your OS? Try something universal such as "ls" on Unix or "dir" on Windows.

Share this post


Link to post
Share on other sites
WINXP

Ok, i'v tried dir, and it worked. now i am trying to run the following
[code]
<?php
  $cmd1 = "cd F:\software\ffmpeg";
  system($cmd1,$return_value1);
  ($return_value1 == 0) or die("returned an error: $cmd1");

  $cmd2 = "F:";
  system($cmd2,$return_value2);
  ($return_value2 == 0) or die("returned an error: $cmd2");

  $cmd3 = "ffmpeg -i 002.mpg 005.flv";
  system($cmd3,$return_value3);
  ($return_value3 == 0) or die("returned an error: $cmd3");
?>
[/code]

It goes through the first/second parts and dies on the third. Is there a way to see what cmd returns?

Share this post


Link to post
Share on other sites
The second system does not see/inherit the changes of the first because it is executed in a different shell (in Unix any way). I'm not sure how Windows separates commands; in Unix it would be "cd /directory; command", which executes both commands within the same shell, and thus allows the cd to affect the command. Either do the same in Windows, or again, use full paths. Also, backslashes are special in strings--see the Windows examples in the documentation for system.

Share this post


Link to post
Share on other sites
I am not a mighty dos pro, so my next question is - how can i run everything with one command in CMD?

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.