[英]Translate Command Line Input to Node Fluent ffmpeg
我想使用node-fluent-ffmpeg運行ffmpeg命令行(將png圖像編譯為視頻):
ffmpeg -framerate 20 -i static/tmp/img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
我正在嘗試以下,但沒有運氣。
var ffmpeg = require('fluent-ffmpeg');
var proc = new ffmpeg()
.addInputOption('-framerate 20')
.addInputOption('static/tmp/img%03d.png')
.addInputOption('-c:v libx264')
.addInputOption('-r 30')
.addInputOption('-pix_fmt yuv420p out.mp4')
.output('outputfile.mp4')
.output(stream);
我查看了github存儲庫和stackoverflow上的所有Q / A,但沒有正確的答案。
如何將命令行格式化為js代碼?
謝謝!
你現在可能已經想到了這一點,但無論如何我都會回答。
嘗試這個:
var ffmpeg = require('fluent-ffmpeg');
var proc = new ffmpeg();
proc.addInput('static/tmp/img%03d.png')
.on('start', function(ffmpegCommand) {
/// log something maybe
})
.on('progress', function(data) {
/// do stuff with progress data if you want
})
.on('end', function() {
/// encoding is complete, so callback or move on at this point
})
.on('error', function(error) {
/// error handling
})
.addInputOption('-framerate 20')
.outputOptions(['-c:v libx264', '-r 30', '-pix_fmt yuv420p'])
.output('out.mp4')
.run();
基本上,-i之前的任何內容都被視為輸入選項,輸入和輸出文件之間的任何內容都被視為輸出選項。
你可以使用一組選項在一行中添加多個輸入或輸出選項,流暢的ffmpeg github也會指向一些javascript代碼,這些代碼可以作為其中一些命令的快捷方式,盡管我仍然覺得使用命令行語法更容易。 https://github.com/fluent-ffmpeg/node-fluent-ffmpeg
如果你想要多個輸出,你可以像你的例子一樣添加更多.output
(雖然你的命令行ffmpeg沒有這樣做)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.