2016-10-01 51 views
-1

這可能嗎?這裏是我的工作單個文件的解決方案。我如何修改它來保存兩個單獨的文件?ffmpeg:同時捕捉兩個屏幕,保存爲兩個單獨的文件

ffmpeg \ 
-f avfoundation -pix_fmt uyvy422 -s 1440x900 -i 1 \ 
-f avfoundation -pix_fmt uyvy422 -s 1440x900 -i 2 \ 
-pix_fmt yuv420p -r 30 -preset ultrafast -b:v 5000k -t 15 \ 
    -filter_complex \ 
    "nullsrc=size=2880x900 [background]; \ 
    [0:v] setpts=PTS-STARTPTS, scale=1440x900 [left]; \ 
    [1:v] setpts=PTS-STARTPTS, scale=1440x900 [right]; \ 
    [background][left] overlay=shortest=1 [background+left]; \ 
    [background+left][right] overlay=shortest=1:x=1440 [left+right]" \ 
    -map [left+right] out.mov 

我已經嘗試刪除過濾器複雜。我試過添加兩個輸出文件。我嘗試過各種映射組合。以下是我最接近的工作。它創建兩個文件,但都只包含第二個流(-i 2)。

ffmpeg \ 
-f avfoundation -pix_fmt uyvy422 -s 1440x900 -i 1 \ 
-f avfoundation -pix_fmt uyvy422 -s 1440x900 -i 2 \ 
-pix_fmt yuv420p -r 30 -preset ultrafast -b:v 5000k -t 15 out1.mov \ 
-pix_fmt yuv420p -r 30 -preset ultrafast -b:v 5000k -t 15 out2.mov 
+0

有你爲什麼要只運行_one_ ffmpeg的情況下任何具體的原因是什麼?最簡單的解決方案似乎是兩個併發進程,並使用-threads選項限制每個進程的CPU使用情況。 – hdezela

+0

@hdezela兩個實例都可以。但是,你能告訴我該怎麼做嗎?我剛剛嘗試了兩個分號分隔的ffmpeg命令,但它只是一個接一個地運行。 – wetjosh

+0

你可以使用nohup &nohup &,ffmpeg喜歡輸出到屏幕上,因此你必須分離它並將它發送到背景。 (&cmd2後不是一個錯字,它是在那裏發送cmd2到後臺)。 – hdezela

回答

1

使用map選項:

ffmpeg \ 
-f avfoundation -pix_fmt uyvy422 -s 1440x900 -i 1 \ 
-f avfoundation -pix_fmt uyvy422 -s 1440x900 -i 2 \ 
-map 0 -pix_fmt yuv420p -r 30 -preset ultrafast -b:v 5000k -t 15 out1.mov \ 
-map 1 -pix_fmt yuv420p -r 30 -preset ultrafast -b:v 5000k -t 15 out2.mov