使用c ++进行视频流传输

时间:2009-12-01 10:35:31

标签: c++ video streaming

我将在c ++中构建一个创建照片流的应用程序,然后将它们作为视频流发送到另一个应用程序。关于我该如何开始的任何想法?我的意思是,我应该使用哪些库以及编码是什么?我正在考虑将MJPEG,UDP或RTP作为协议....任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:5)

如果您的输入数据只是一堆随机图像,而不是视频,那么您就不会进行“视频流”。你只是要发送一堆完整的图像。无需涉及视频编码技术,只需尽可能简单地传输图像。视频编码器依赖于具有与先前的各种关系的每个帧,这在实际视频中是常见的。对于随机图像的输入,它们无法压缩那么多,并且单帧压缩(例如JPEG / PNG /无论如何)很可能已经应用于您的输入数据。

可能最容易发送每个文件的内容以及原始文件名,并让接收客户端在磁盘上重新创建文件,并使用现有的面向磁盘的库来打开和解码图像。

您可能只需使用TCP,您的要求中没有任何内容表明您需要使用更复杂且容易出错的基于UDP / RTP的解决方案。

答案 1 :(得分:5)

对于流式传输部分,您可以使用Live555。它应该涵盖你所需要的一切。这仍然存在生成MJpeg流的问题。我只能在这里猜测,FFMpeg可能是你正在寻找的(因为我看到它也包括流媒体,所以你可能只需要这个)。 我认为MJpeg非常适合您的应用。至于TCP或UDP,这取决于你想如何使用它。如果你想让你的流组播,UDP是有意义的,否则我更喜欢TCP,因为它更可靠。

希望这是一些有用的提示。

答案 2 :(得分:0)

使用ffmpeg库对流进行编码,并使用RTP / RTSP堆栈对其进行流式处理。