Mick Jack
Mick Jack

Reputation: 580

PHP ffmpeg output location

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

Answers (1)

Tan Mai Van
Tan Mai Van

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

Related Questions