如何创建视频流httpserver?

发布于 2024-11-15 14:56:39 字数 146 浏览 1 评论 0原文

我正在使用 C++ 和 poco 库。我正在尝试实现一个视频流 httpserver。
最初我使用 Poco::StreamCopier。 但客户端无法串流。
相反,客户端正在下载视频。 如何让服务器发送流响应,以便客户端可以在浏览器中流式传输视频而不是下载?

I'm using c++ and poco libraries. I'm trying to implement a video streaming httpserver.
Initially i used Poco::StreamCopier.
But client failed to stream.
Instead client is downloading the video.
How can i make the server to send a streamresponse so that client can stream the video in browser instead of downloading?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

鹤舞 2024-11-22 14:56:39

虽然不在 POCO 中,但您可以使用 ffmpeg。它具有适用于多种视频协议的流媒体服务器,并且是用 C 语言编写的(您可以为其编写类似 POCO 的适配器)。

http://ffmpeg.org/ffmpeg.html#rtp

http://ffmpeg.org/ffmpeg.html#toc-Protocols

http://git.videolan.org/?p=ffmpeg.git;a=tree

而且它有一个相当自由的许可证:
http://ffmpeg.org/legal.html

While not within POCO, you could use ffmpeg. It has streaming servers for a number of video protocols and is written in C (which you could write POCO-like adapters for).

http://ffmpeg.org/ffmpeg.html#rtp

http://ffmpeg.org/ffmpeg.html#toc-Protocols

http://git.videolan.org/?p=ffmpeg.git;a=tree

And it has a pretty liberal license:
http://ffmpeg.org/legal.html

风铃鹿 2024-11-22 14:56:39

您需要研究哪种视频编码和容器适合流式传输 - 并非所有视频文件都可以流式传输

You need to research which video encoding and container that is right for streaming -- not all video files can stream

遗失的美好 2024-11-22 14:56:39

无需在另一端使用某些东西来解码视频,而只需通过 HTTP,您可以使用 mime 编码“content-type:multipart/x-mixed-replace;boundary=...”并发送一系列 jpeg 图像。

这实际上称为基于 HTTP 的 M-JPEG。请参阅:http://en.wikipedia.org/wiki/Motion_JPEG

浏览器将替换每个图像当它收到它时,它看起来就像是视频。这可能是将视频流传输到浏览器的最简单方法,许多 IP 网络摄像机本身就支持这种方式。

然而,它无论如何都不适合带宽,因为它必须为每个帧发送整个 jpeg 文件。因此,如果您要通过互联网使用它,它会起作用,但会比其他方法使用更多的带宽。

然而,现在大多数浏览器都天真地支持它,听起来这就是您所追求的。

Without using something to decode the video at the other end but simply over HTTP, you can use The mime encoding "content-type:multipart/x-mixed-replace; boundary=..." and send a series of jpeg images.

This is actually called M-JPEG over HTTP. See: http://en.wikipedia.org/wiki/Motion_JPEG

The browser will replace each image as it receives it which makes it look like it's video. It's probably the easiest way to stream video to a browser and many IP webcameras support this natively.

However, it's not bandwidth friendly by any means since it has to send a whole jpeg file for each frame. So if you're going to be using this over the internet it'll work but will use more bandwidth than other method.

However, It is naively supported in most browsers now and it sounds like that is what you're after.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文