FFMPEG เป็นที่รู้กันว่าเป็น เครื่องมือที่เขาใช้กันแพร่หลายในการแปลงไฟล์ Vidoe ใน Post นี้จะเขียนวิธีการใช้งาน FFMPEG ด้วย Node.js โดยเลือกใช้ library ของ fluent-ffmpeg เขียนมากไปอาจจะงง งั้นมาลองทำกันเลย (ในที่นี้ผมใช้เครื่อง Mac นะครับ)
ขั้นตอนการลงโปรแกรม
1. Download Node.js มาลงที่เครื่องแล้ว Install หรือ เปิด Terminal แล้วพิมพ์
$ brew install node
2. Install FFMPEG เปิด Terminal แล้วพิมพ์
$ brew install ffmpeg
3. สร้าง Project อันนี้ก็แล้วแต่ว่าจะใช้ Tools อันไหน ของผมใช้ Express
4. ใน Terminal ให้เข้าไปที่ Path ของโปรเจค แล้วทำการ Install fluent-ffmpeg เข้าไป
$ cd myproject $ npm install fluent-ffmpeg
เท่านี้ก็พร้อมสำหรับการใช้งานแล้ว
ขั้นตอนเขียนโปรแกรม
1. เรียกใช้งาน fluent-ffmpeg
var ffmpeg = require('fluent-ffmpeg');
2. ทดลองใข้งาน
var ffmpeg = require('fluent-ffmpeg'); var proc = new ffmpeg({ source: 'test.avi', nolog: true }) .toFormat('mp4') .on('end', function() { console.log('file has been converted succesfully'); }) .on('error', function(err) { console.log('an error happened: ' + err.message); }) .saveToFile('output.mp4');
จากสคริปข้างบน
var proc = new ffmpeg({ source: 'test.avi', nolog: true })
เป็นการเรียกใช้งาน ffmpeg และกำหนดไฟล์ต้นทางว่าอยู่ที่ไหน
.toFormat('mp4')
เป็นการกำหนดชนิดไฟล์ Output
.on('end', function() {
ฟังชั่นนี้จะทำงานเมื่อจบ
.on('error', function(err) {
ฟังชั่นนี้จะทำงานเมื่อ เกิดข้อผิดพลาด
.saveToFile('output.mp4');
กำหนด part และชื่อไฟล์ Output
เท่านี้เราก็สามารถแปลงไฟล์ตามที่เราต้องการได้แล้ว ส่วนเรื่องการเซตค่าอะไรได้บ้าง ค่อนข้างระเอียดลองดูเอกสารของทาง fluent-ffmpeg จะดีกว่าครับ