ใช้ Node.js แปลง File video ด้วย FFMPEG

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  จะดีกว่าครับ