1

到目前为止,我们已经完成了

我们有一个视频聊天客户端,它有一组 9 个视频流(用户)和使用 Adob​​e FMS 的 h.264 编解码器。现在,使用 ffmpeg,我们可以使用叠加(视频)和混合(音频)过滤器将这些流组合成一个流。我们能够将单个组合流发送到实时流媒体服务。使用 ffmpeg 的 scale 属性以更大的尺寸显示当前发言者的流。

代码如下:

ffmpeg -i "rtmp://localhost/live/mystream" -i "rtmp://localhost/live/mystream2 " -i "rtmp://localhost/live/mystream3 "-filter_complex"nullsrc=size=300x300 [b1];[0:v] setpts=PTS-STARTPTS,scale=100x100 [s1];[1:v] setpts=PTS-STARTPTS,scale=200x200 [s2];[2:v]setpts=PTS-STARTPTS,scale=100x100 [s3];[b1][s1] overlay=shortest=1 [b1+s1];[b1+s1][s2] overlay=shortest=1 [b1+s2];
[b1+s2][s3] overlay=shortest=1:x=100" out.mp4

以下 2 个主要问题需要帮助。任何帮助,将不胜感激。

  1. 每当当前发言人发生变化时,该用户的流应该以更大的尺寸显示。这可以在不重新启动ffmpeg进程的情况下完成吗?

  2. 现在,如果 9 个流之一停止,则 ffmpeg 进程崩溃。

4

0 回答 0