如何在 Qt 中为 RTP 负载创建视频数据包

发布于 2024-11-24 23:02:33 字数 143 浏览 2 评论 0原文

我目前正在尝试使用 Qt 实现 RTSP/RTP 服务器。我想将视频文件读入 QByteArray,以便将其分割成片段并添加为 RTP 数据包的有效负载。这是正确的方法吗?如果是,将媒体文件(例如“movie.3gp”)读入 QByteArray 的代码是什么?提前致谢。

I am currently trying to implement an RTSP/RTP server using Qt. I would like to read from a video file into a QByteArray so that it may be split up into fragments and added as the payload of a RTP packet. Would this be the correct approach and if so what would the code be to read a media file (such as "movie.3gp") into a QByteArray? Thanks in advance.

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

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

发布评论

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

评论(1

青朷 2024-12-01 23:02:33

我过去用 Qt 3.3 做过这个。如果我没有弄错的话,当时我使用 ffmpeg 来压缩来自相机的流,并使用 live 库 来生成RTSP/RTP 流。基本上正如您所说,将每个帧加载到 QByteArray 中并将其移动到实时 API。

现在 Qt 有 PhononQtMultimidia 模块可能可以直接读取该文件,但要使用它,看起来您必须创建一个实现流媒体的视频接收器。应该是可能的,创建一个声子插件,也许使用 live。

不幸的是,据我所知,您无法使用当前的 API (4.8.0) 从声子源访问 QVideoFrame。因此,要么像我过去那样使用其他库,要么创建一个新的声子插件似乎是实现它的唯一两种方法。

希望这能让您朝着正确的方向前进。

I had done it in the past with Qt 3.3. Back then I used ffmpeg if I'm not mistaken to compress the stream from a camera and live library to generate the RTSP/RTP stream. Basically as you said, loading each frame into a QByteArray and moving it to live API.

Now Qt has Phonon and QtMultimidia modules that probably could read the file directly, but to use it, looks like you would have to create a video sink that implements the streamming. Should be possible, creating a phonon plugin, perhaps using live.

Unfortunally you can't acess a QVideoFrame from a Phonon source using the current API (4.8.0) as far as I can tell. So either using other libs as I did in the past or creating a new phonon plugin seems like the only 2 ways to accomplish it.

Hope this can get you in the right direction.

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