Linux Windows CentOS Web Server DNS PHP MySql

วันจันทร์ที่ 29 กรกฎาคม พ.ศ. 2556


การติดตั้ง FFmpeg เพื่อใช้สำหรับการแปลงไฟล์วิดีโอจากฟอร์แมตหนึ่งไปเป็นอีกฟอร์แมตหนึ่ง เช่นแปลงจาก .mov เป็น .flv เพื่อใช้สำหรับงานวิดีโอบนเว็บไซต์ โดยเจ้า FFmpeg เนี้ยรองรับฟอร์แมตของวิดีโอเยอะมากๆ คิดว่าน่าจะพอกับความต้องการของแต่ละคนเลยทีเดียว และเรายังมี ffmpeg-php ที่จะเป็น extension สำหรับเรียกใช้ FFmpeg จาก php ได้อีกด้วย (แต่ตอนนี้ความสามารถยังไม่เยอะมากนัก) หรือถ้าใครติดตั้ง FFmpeg แล้ว ต้องการจะทำเว็บรับฝากวิดีโอคล้ายๆ youtube โดยให้ผู้ใช้อัพโหลดไฟล์ฟอร์แมตอะไรขึ้นมาก็ได้ จากน้ันระบบจะแปลงไปเป็น .flv เพื่อใช้เล่นบนเว็บหรือจะแปลงเป็นฟอร์แมตอื่นก็ทำได้
อย่างแรกทำการเพิ่ม Repository ใหม่เข้าไปในระบบให้เรียบร้อย
1
# nano /etc/yum.repos.d/dag.repo
เพิ่มคำสั่งต่อไปนี้ในไฟล์ /etc/yum.repos.d/dag.repo
1
2
3
4
5
[dag]
name=DAG RPM Repository
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
ทำการ import GPG Key เข้าระบบ
1
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
สั่ง yum update สักรอบหนึ่ง
1
# yum update
ทำการติดตั้ง ffmpeg และไลบรารีทีเกียวข้องด้วยคำสั่ง yum
1
# yum install ffmpeg ffmpeg-devel ffmpeg-libpostproc
ขั้นตอนถัดไปให้ทำการติดตั้ง ffmpeg-php แต่ว่า ffmpeg-php ต้องการโปรแกรมและไลบรารีต่างๆดังนี้คือ php php-gd php-devel ความจำผมสั่นไม่แน่ใจว่าได้ติดตั้งไปหรือยัง งั้นเราก็สั่งติดตั้งซ้ำลงไปอีกรอบเลยหละกัน
1
# yum install php php-gd php-devel
ทำการดาวน์โหลดและติดตั้ง ffmpeg-php จาก http://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/ โดยเลือกเอาเวอร์ชั่นล่าสุด
1
2
3
4
5
6
7
8
# cd /tmp
# wget http://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2/download
# tar -xjf ffmpeg-php-0.6.0.tbz2
# cd ffmpeg-php-0.6.0
# phpize
# ./configure
# make
# make install
ในขั้นตอนการคอมไพล์ ถ้าหากว่าเกิดมี Error เกียวกับ PIX_FMT_RGBA32 ขึ้นมาเหมือนในรูป ให้เข้าไปทำการแก้ไข ไฟล์ /tmp/ffmpeg-php-0.6.0/ffmpeg_frame.c โดยแก้ไขจากคำว่า PIX_FMT_RGBA32 ให้เป็น PIX_FMT_RGB32 ซึ่งในโค้ดเป็นภาษาซี และตัวแปร PIX_FMT_RGBA32 ก็มีอยู่หลายทีมาก โดยในทีนี้เราจะใช้ nano ในการแก้ไข โดยให้กด CTRL + \ เพื่อทำการค้นหาและแทนที่คำที่เราต้องการ และเมื่อแก้ไขโค้ดเสร็จแล้ว ให้ทำการสั่งคอมไพล์ใหม่อีกรอบ
ทำการเปิดไฟล์ /tmp/ffmpeg-php-0.6.0/ffmpeg_frame.c ขึ้นมาเพื่อทำการแก้ไข
1
# nano /tmp/ffmpeg-php-0.6.0/ffmpeg_frame.c





















เมื่อทำการคอมไพล์ ffmpeg-php เรียบร้อยแล้ว ให้ทำการเพิ่ม ffmpeg ลงไปใน php extension ด้วยคำสั่ง echo extension=ffmpeg.so > /etc/php.d/ffmpeg.ini
1
# echo extension=ffmpeg.so > /etc/php.d/ffmpeg.ini
สั่ง restart apache httpd สักหนึ่งรอบ
1
# service httpd restart
จากนั้นเปิดบราวเซอร์ไปที่ http://192.168.8.104/info.php เพื่อตรวจสอบ extension ของ php จะเห็นว่าเราได้ ffmpeg มาแล้ว เท่านี้ก็เป็นอันเรียบร้อย

















ก่อนจบเราก็ต้องทดสอบการแปลงไฟล์ video ของเราดูหน่อยว่าใช้งานได้ไหม โดยเราจะทดสอบแปลงจาก .mov เป็น .flv
1
# ffmpeg -i inputFile.mov outputFile.flv


0 ความคิดเห็น:

แสดงความคิดเห็น