2013-03-13 82 views
8

我有一臺帶有16個視頻採集卡通道的服務器,並且想用ffmpeg對它們進行流式處理,是否有可能讓另一個流出來,這是16個獨特通道的4x4拼貼畫?如何將多個ffmpeg流合併爲一個4x4拼貼畫?

編輯:添加一個賞金,因爲沒有工作答案已經提交 - 將獎勵它的第一個可以顯示代碼產生16個直播頻道的4x4網格(輸入設備是http:// localhost:8090 /x.mpg其中x =數字0-15,352x288視頻採用MPEG1VIDEO格式,YUV420P採用24-30FPS的顏色) - 或導致我找到該解決方案的代碼 - 輸出將位於http:// localhost:8090/all.mpg,並將成爲1408x1152 mpg的直播視頻流。

+0

[在Linux中將16個實時流合併爲實時4x4拼貼的最佳方式]的可能重複(http://stackoverflow.com/questions/15390530/best-way-to-combine-16-live-streams-into -a-live-4x4-collage-linux) – Hasturkun 2013-03-13 18:15:23

+1

這不是重複的,我一直傾向於ffmpeg,但我問是否有更好的方法在另一個線程中查看是否有。這個線程特別是如何在ffmpeg中完成實時流媒體拼貼。 – CoryG 2013-03-13 18:59:42

回答

7

我認爲你正在尋找ffmpeg覆蓋過濾器,這裏是一些例子的documentation。下面是一個2x1示例的副本,但您必須對流格式,幀大小和更多面板進行調整。

ffmpeg -i left.avi -i right.avi -filter_complex " 
nullsrc=size=200x100 [background]; 
[0:v] setpts=PTS-STARTPTS, scale=100x100 [left]; 
[1:v] setpts=PTS-STARTPTS, scale=100x100 [right]; 
[background][left]  overlay=shortest=1  [background+left]; 
[background+left][right] overlay=shortest=1:x=100 [left+right] 
" 

或者,有也產生與VLC一個花葉的方式。

+0

有沒有辦法使用覆蓋過濾器作爲輸出流? – CoryG 2013-03-13 18:05:07

+1

是的,過濾器的輸出可以像任何其他ffmpeg輸出一樣插入流中。流媒體的確切設置可能是複雜的答案,具體取決於您的要求,但請參閱http://ffmpeg.org/trac/ffmpeg/wiki/StreamingGuide – Digikata 2013-03-13 18:13:26

+3

另請參見[2x2網格中的多輸入重疊](https:/ /fmpeg.org/trac/ffmpeg/wiki/FilteringGuide#multipleinputoverlayinin2x2grid)在[FFmpeg社區貢獻文檔維基]上的示例(https://ffmpeg.org/trac/ffmpeg/wiki)。 – LordNeckbeard 2013-03-13 18:16:50