簡體   English   中英

將命令行輸入轉換為Node Fluent ffmpeg

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM