ffmpeg คือ ซอฟต์แวร์สำหรับจัดการไฟล์มีเดียต่าง ๆ ไม่ใช่เฉพาะวีดีโอ แต่รวมถึงไฟล์ภาพ เราสามารถใช้ความสามารถของ ffmpeg เพื่อแปลงไฟล์วีดีโอนามสกุลต่าง ๆ ตัวอย่างเช่น การแปลงไฟล์วีดีโอนามสกุล avi เป็นไฟล์ mp4 เพื่อให้สามารถนำไป streaming ผ่านเว็บไซต์ โดยการใช้ html5 video tags ได้
ffmpeg เป็นซอฟต์แวร์ที่เปิดให้นักพัฒนาสามารถนำไปใช้งานได้ฟรี ไม่มีค่าใช้จ่าย ( Open Source ) สามารถใช้งานได้ทั้ง 3 ระบบปฏิบัติการหลัก คือ Linux, MacOS และ ระบบปฏิบัติการ Window
ติดตั้ง ffmpeg และแปลงไฟล์ avi เป็น mp4
- ดาวน์โหลด ffmpeg ที่ ffmpeg.org เลือกเป็น Get packages & executable files
- ให้ดาวน์โหลดไฟล์ ffmpeg.dll win32 ที่ php_ffmpeg_win32.zip
- unzip ไฟล์ จากนั้นให้ rename ไฟล์ php_ffmpeg_20050212.dll เป็น php_ffmpeg.dll และนำไฟล์ไปวางไว้ที่ C:\xampp\php\ext
- เปิดไฟล์ php.ini ที่ C:\xampp\php และเพิ่ม หรือ เปิดใช้งาน extension=php_ffmpeg.dll จากนั้นให้ Restart Apache Server ก่อนรอบหนึ่ง
- สร้างโฟลเด้อโปรเจคใน htdocs xampp ตั้งชื่อว่า videoconvert และนำไฟล์ ffmpeg.exe ที่ได้จากการดาวน์โหลดมาในข้อ 1 นำไปวางไว้ที่ root ของโปรเจค
- ดาวน์โหลดไฟล์วีดีโอ .avi ตั้งชื่อว่า sample.avi และวางไว้ที่ root ของโปรเจค ตำแหน่งเดียวกันกับ ffmpeg.exe ดาวน์โหลดได้ที่ learningcontainer.com/download
- หลังจากทำตามขั้นตอนทั้งหมดครบเรียบร้อยแล้ว จะได้โครงสร้างไฟล์ ดังรูปตัวอย่างด้านล่างครับ

- สร้างไฟล์ index.php และเขียนคำสั่งเพื่อแปลงไฟล์วีดีโอนามสกุล avi เป็น mp4 ได้ดังนี้
$ffmpegpath = "ffmpeg.exe";
$input = 'sample.avi';
$output = 'sample.mp4';
echo 'Converting...';
if (convertVideo($input, $output)){
echo '<meta http-equiv="refresh" content="3;url=/videoconvert/player.php?vdo='.$output.'">';
}
function convertVideo($input, $output) {
global $ffmpegpath;
if(!file_exists($input)){
echo 'file not exists';
return false;
}
if(file_exists($output)) return true;
$command = "$ffmpegpath -i $input -y $output";
exec( $command);
if(!file_exists($output)) return false;
if(filesize($output)==0) return false;
return true;
}
- สร้างไฟล์ player.php ใช้สำหรับเล่นไฟล์วีดีโอ .mp4 หลังจากแปลงไฟล์สำเร็จ โดยเขียนคำสั่งแสดง video player ดังนี้
showPlayer($_GET['vdo']);
function showPlayer($video_path){
echo $video_path;
}
- จากนั้นเริ่ม run โปรเจคที่ไฟล์ index.php รอจนกว่า ffmpeg จะแปลงไฟล์วีดีโอเสร็จ ก็จะเห็นว่าไฟล์ mp4 โผล่มาแล้ว

- หลังจากแปลงไฟล์เสร็จ เราได้เขียนคำสั่งให้ redirect มาที่หน้า player.php เพื่อทดสอบเล่นวีดีโอไฟล์นามสกุล mp4 ตัวอย่างตามภาพด้านล่าง
