我将会使用C++编写一个应用程序,生成一系列图片并将它们作为视频流发送给另一个应用程序。您有什么建议从哪里开始吗?我的意思是,我应该使用哪些库以及什么编码方式?我正在考虑使用MJPEG和UDP或RTP作为协议...任何帮助都将不胜感激。
如果您的输入数据仅是一堆随机图像,而不是视频,则无法进行“视频流传输”。您只需要发送一堆完整的图像,而不需要涉及视频编码技术,只需尽可能简单地传输图像即可。视频编码器依赖于每个帧与先前帧之间具有各种关系,这在实际视频中很常见。对于随机图像的输入,它们无法压缩太多,并且单帧压缩(例如JPEG / PNG / whatever)很可能已经应用于您的输入数据。最简单的方法可能是发送每个文件的内容,以及原始文件名,并让接收客户端在磁盘上重新创建文件,并使用现有的面向磁盘的库打开和解码图像。您应该只使用TCP进行此操作,没有任何要求表明您需要使用更复杂且容易出错的基于UDP / RTP的解决方案。
对于流媒体部分,您可以使用Live555。它应该涵盖您所需的所有内容。这仍然留下了生成MJpeg流的问题。我只能猜测,FFMpeg可能是您要寻找的(因为我看到它还涵盖流媒体,因此您可能只需要这一个)。 我认为MJpeg非常适合您的应用程序。至于TCP或UDP,则取决于您想如何使用它。如果您想使流媒体成为多播,则UDP很有意义,否则我更喜欢TCP,因为它更可靠。希望这些提示对您有用。