Ffmpeg 是否可以将实时m3u8流与来自WebRTC源的PIP覆盖合并?

Ffmpeg 是否可以将实时m3u8流与来自WebRTC源的PIP覆盖合并?,ffmpeg,streaming,live,wowza,m3u8,Ffmpeg,Streaming,Live,Wowza,M3u8,有人能告诉我可以使用什么服务器端技术(可能是ffmpeg)来: 1) 显示此全屏实时流媒体视频: 2) 并在右下角覆盖来自webRTC视频聊天流的实时视频 3) 并将该组合流发送到新的m3u8实时流中 4) 请注意,它需要是一个服务器端解决方案---在这种情况下无法启动多个视频播放器(需要将结果流传递给SmartTV,SmartTV一次只有一个视频解码器) 到目前为止,我发现的最接近的例子是这篇文章: 这不是真的活的,也不是真的做叠加 非常感谢您的任何建议。请让我说明您在这种情况下需要什么:

有人能告诉我可以使用什么服务器端技术(可能是ffmpeg)来:

1) 显示此全屏实时流媒体视频:

2) 并在右下角覆盖来自webRTC视频聊天流的实时视频

3) 并将该组合流发送到新的m3u8实时流中

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

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

这不是真的活的,也不是真的做叠加


非常感谢您的任何建议。

请让我说明您在这种情况下需要什么:

  • 输入视频是来自webRTC的HLS流:延迟如何?在你的工作中非常重要吗

  • 将图像叠加到视频中:这将需要对输入的视频进行解码、过滤、再次编码。因此,如果输入视频为1080p,则需要大量cpu资源,甚至更多

  • 重新构造新的HLS格式:您必须为其添加许多编码选项,以确保ts片段工作正常。最重要的是GOP规模和ts持续时间

  • 您需要一个web服务器来提供m3u8索引文件。您可以使用nginx、apache

  • 我现在在这个答案中告诉你们的是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)将是您调整的关键点

    谢谢你的评论。我并不是真的想在HLS视频上叠加一个“图像”。我想在HLS视频的右下角覆盖一个基于webRTC的小视频。因此,我们的目标是允许人们在社区现场播放视频的同时进行视频聊天。您可以使用相同的命令行覆盖视频,实际上这并不重要。但是如果你真的想将“透明”视频叠加到主视频中,你的叠加视频“必须”支持alpha通道。最后一部分仍然没有答案---如何将上面的ffmpeg配置示例,并将其路由到http服务器进行流式传输?这里有很多选择:,但没有提到作为m3u8文件实时流式输出。