2013-03-13 45 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