可以将Live m3u8流与WebRTC源的PIP叠加相结合吗?

时间:2015-10-25 03:57:10

标签: ffmpeg streaming live wowza m3u8

有人可以告诉我使用什么服务器端技术(也许是ffmpeg),以便:

1)显示此全屏直播视频:

http://aolhdshls-lh.akamaihd.net/i/gould_1@134793/master.m3u8

2)并使用来自webRTC视频聊天流的实时视频将其叠加在右下角?

3)并将该组合流发送到新的m3u8直播

4)请注意,它需要是服务器端解决方案 - - 在这种情况下无法启动多个视频播放器(需要将生成的流传递给SmartTV,它一次只有一个视频解码器)

到目前为止,我发现的最接近的例子是这篇文章:

https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20input%20videos

哪个不是真的存在,也不是真的覆盖。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

让我在这种情况下明确你想要的东西:

  1. 输入视频是来自webRTC的HLS流:延迟怎么样?在你的工作中,这是重要的事情吗?

  2. 将图像叠加到视频中:这将需要解码输入视频,并对其进行过滤,再次进行编码。因此它需要大量的cpu资源,如果输入视频是1080p则需要更多。

  3. 重构新的HLS格式:您必须添加大量编码选项以确保ts片段正常工作。最重要的是GOP大小和持续时间。

  4. 您需要一台Web服务器来提供m3u8索引文件。你可以使用nginx,apache。

  5. 我现在在这个答案中告诉你的是ffmpeg命令行,它从输入HLS流中重叠并重新制作ts段。

    以下命令行将执行您在步骤1到步骤3中所需的操作:

    ffmpeg \
    -re -i "http://aolhdshls-lh.akamaihd.net/i/gould_1@134793/master.m3u8" \
    -i "[OVERLAY_IMAGE].png" \
    -filter_complex "[0:v][1:v]overlay=main_w:main_h[output]" \
    -map [output] -0:a -c:v libx264 -c:a aac -strict -2 \
    -f ssegment -segment_list out.list out%03d.ts
    

    这是从输入HLS流覆盖图像然后创建ts段和索引文件的基本命令行。

    我对HLS没有任何进一步的经验,所以可以在没有任何调整选项的情况下完成,但也许你应该调整它以便你工作。而且你应该搜索一下web服务器来提供m3u8,但这并不难。

    正如我所说,GOP大小(-g)及其持续时间(segment_tim)将是您调整的关键点。