使用任何协议/编解码器的实时流媒体如何从端到端工作?
我一直在搜索google,youtube,FFMPEG文档,OBS源代码,堆栈溢出,但仍然无法从视频中了解实时视频流的工作方式。因此,我试图捕获桌面屏幕截图,并将其转换为H.264编码的实时视频流。
我曾尝试使用FFMPEG将.mp4文件连续发送到RTMP服务器上,但这似乎不起作用,因为它会在每个视频后关闭连接。我也研究过使用ffmpeg concat列表,但这只是结合了视频,无法将实时流读取的视频附加到我的理解中,并且可能不是为此而制作的。
所以我最好的线索来自this stackoverflow answer,它表明:
此编码和转换如何完成?可以使用ffmpeg命令完成所有操作吗?
自您提到C#以来,MediaFoundation将是最适合您的解决方案。
您可以检查我的sample(经过全面测试),它基于桌面复制进行桌面捕获。 该示例使用媒体基础将帧编码为H264,并使用Live555实时直播包装在RTP中的输出视频。通过这种方法,我能够达到100FPS。 Live555还支持RTSP,HLS和MPEG。
您还可以检查this one,它基于GDI方法进行桌面捕获。并且h264编码的视频以MPEG容器格式流式传输。
这里有一些其他参考链接。