Reputation: 580
My website allow users to upload video files to the server. Original file will be move to folder "Original" ffmpeg will compress the video and store the video in 480p folder. how to i setup ffmpeg so that it will store output of the compressed video file into original/480p?
Partial code of upload.php
$target_dir = "Original/"; //where you want to upload the files to
$target_file = $target_dir.basename($_FILES['file']['name']);
$fileType = pathinfo($target_file, PATHINFO_EXTENSION);
$newFileName = $target_dir.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'480p'.'.'.$fileType;
//$newFileName = $target_dir.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'-'.time().'.'.$fileType;
move_uploaded_file($_FILES['file']['tmp_name'], $newFileName);
using this FFMPEG command
shell_exec("C:\\ffmpeg\\bin\\ffmpeg.exe -y -i ".$newFileName." -c:v libx264 -s:v 854x480 -c:a copy \"480p\\{$newFileName}\" > logfile.txt 2>&1");
i get the error 480p\Original/ffbaf58f1231628f9ac2a583f038b51719006ec6480p.mp4: No such file or directory
i will like the output to be stored in original/480p/compressed-video-file
Upvotes: 0
Views: 1776
Reputation: 695
First you will need to create a folder in your server: original/480p
Then change the code to:
$target_dir = "original/"; //where you want to upload the files to
$target_file = $target_dir.basename($_FILES['file']['name']);
$fileType = pathinfo($target_file, PATHINFO_EXTENSION);
$newFileName = $target_dir.'/480p/'.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'480p'.'.'.$fileType;
//$newFileName = $target_dir.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'-'.time().'.'.$fileType;
move_uploaded_file($_FILES['file']['tmp_name'], $newFileName);
FFmpeg command:
shell_exec("C:\\ffmpeg\\bin\\ffmpeg.exe -y -i ".$target_file.".".$fileType." -c:v libx264 -s:v 854x480 -c:a copy \"{$newFileName}\" > logfile.txt 2>&1");
Upvotes: 1