有人可以告诉我使用什么服务器端技术(也许是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
哪个不是真的存在,也不是真的覆盖。
非常感谢任何建议。
答案 0 :(得分:0)
让我在这种情况下明确你想要的东西:
输入视频是来自webRTC的HLS流:延迟怎么样?在你的工作中,这是重要的事情吗?
将图像叠加到视频中:这将需要解码输入视频,并对其进行过滤,再次进行编码。因此它需要大量的cpu资源,如果输入视频是1080p则需要更多。
重构新的HLS格式:您必须添加大量编码选项以确保ts片段正常工作。最重要的是GOP大小和持续时间。
您需要一台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)将是您调整的关键点。