Setelah menginstal ffmpeg pada windows dan mengetahui cara menggunakan sintaknya.
Baca :
menggunakan-ffmpeg-untuk-konversi-video
install-ffmpeg-di-windows
Sekarang bagaimana menggunakannya dengan PHP?
Contoh Dibawah ini adalah untuk meng upload dan sekaligus konversi video dengan PHP dan ffmpeg.
1. Buat file index.php
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<link href="css/style.css" rel='stylesheet' type='text/css' />
<meta name="viewport" content="width=device-width, initial-scale=1">
<!----webfonts---->
<link href='css/font.css' rel='stylesheet' type='text/css'>
<!----//webfonts---->
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" type="text/css" media="all" href="css/switchery.min.css">
<!-- //Global CSS for the page and tiles -->
<!---start-click-drop-down-menu----->
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type='text/javascript' src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<!----start-dropdown--->
<script type="text/javascript">
function _(el){
return document.getElementById(el);
}
//videoupload
function uploadFile(){
var file = _("file1").files[0];
// alert(file.name+" | "+file.size+" | "+file.type);
var formdata = new FormData();
formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "file_upload_parser.php");
ajax.send(formdata);
}
function progressHandler(event){
_("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total;
var percent = (event.loaded / event.total) * 100;
_("progressBar").value = Math.round(percent);
_("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
}
function completeHandler(event){
_("status").innerHTML = event.target.responseText;
_("progressBar").value = 0;
}
function errorHandler(event){
_("status").innerHTML = "Upload Failed";
}
function abortHandler(event){
_("status").innerHTML = "Upload Aborted";
}
$(function() {
$("video").osmplayer({
width: '100%',
height: '400px'
});
});
</script>
<!----//End-dropdown--->
<!---//End-click-drop-down-menu----->
</head>
<?php
echo"
<body>
UPLOAD VIDEO
<div id='container'>
<!---start-wrap---->
<div class='content'>
<div class='wrap'>
<div class='register'>
<div class='uploadvideo'>
<label>Upload Video
<input type='file' name='file1' id='file1'><br>
<input type='button' value='UPLOAD' onclick='uploadFile()'>
<h3 id='status'></h3>
<p id='loaded_n_total'></p>
<progress id='progressBar' class='progressbarkosong' value='0' max='100'></progress>
</label>
</div>
</div>
</div>
</div>";
echo"
<!----start-footer--->
<div class='footer'>
<div class='wrap'>
<p align='right'>© Elaiscom 2015</p>
</div>
</div>
<!----//End-footer--->
<!---//End-wrap---->
</div>
</body>";
?>
</html>
2. Buat file file_upload_parser.php
<?php
$fileName = $_FILES["file1"]["name"]; // The file name
$fileTmpLoc = $_FILES["file1"]["tmp_name"]; // File in the PHP tmp folder
$fileType = $_FILES["file1"]["type"]; // The type of file it is
$fileSize = $_FILES["file1"]["size"]; // File size in bytes
$fileErrorMsg = $_FILES["file1"]["error"]; // 0 for false... and 1 for true
$allowedMimeTypes = array('video/avi','video/mp4','video/mpeg','video/quicktime','video/x-msvideo','video/msvideo','video/x-ms-wmv');
$FileName2 = strtolower($_FILES['file1']['name']);
$ImageExt = substr($FileName2, strrpos($FileName2, '.'));
$extension = explode(".", $FileName2);
$date = date("dmY");
$NewFileName2 = preg_replace(array('/s/', '/.[.]+/', '/[^w_.-]/'), array('_', '.', ''), strtolower($date));
$NewFileName = $NewFileName2.$FileName2;
$NewFileName3 = $NewFileName2.$extension[0];
if (!$fileTmpLoc) { // if file not chosen
echo "ERROR: Please browse for a file before clicking the upload button.";
exit();
}
if (in_array($_FILES["file1"]["type"],$allowedMimeTypes )){
if(move_uploaded_file($fileTmpLoc, "images/asli/$NewFileName")){
exec('C:ffmpegbinffmpeg -i images/asli/"'.$NewFileName.'" -ar 22050 -ab 32 -f flv -s 320x240 images/video/"'.$NewFileName3.'".flv');
exec('C:ffmpegbinffmpeg -i images/asli/"'.$NewFileName.'" -an -ss 00:00:03 -t 00:00:01 -r 1 -y -s 320x240 images/cover/"'.$NewFileName3.'".gif');
echo "$fileName upload is complete <input type='hidden' name='fileVideo' value='$NewFileName3.mp4'>
<input type='hidden' name='coverVideo' value='$NewFileName3.gif'>";
} else {
echo "move_uploaded_file function failed";
}
}else{
echo"File Not Video/File Not Support";
}
?>
3. Buat folder images yang didalamnya terdapat folder video, cover, dan asli.
Simpan keduanya dan jalankan melalui webserver yang anda gunakan. Catatan ffmpeg harus sudah terinstall.
NB: Jika hanya kedua file tersebut yang dijalankan. maka tampilan akan kacau karena tidak ada file css nya. untuk lengkap projectnya bisa anda download
DISINI
Semoga Bermanfaat..
[Read more]