如何使用 JRTP 对视频帧进行打包
我正在尝试获取我拥有的视频帧并将其打包成各种 RTP 数据包。我正在使用 jrtp,并且正在使用 C++ 工作,可以使用这个库来完成此操作吗?如果是这样我该怎么办?
谢谢你,
I am trying to take a video frame that I have and packettize it into various RTP packets. I am using jrtp, and am working in C++, can this be done with this library? If so how do I go about this?
Thank you,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,知道您有什么编解码器。 (H.263、H.264、MPEG-2 等)。然后找到用于打包该编解码器的 IETF AVT RFC(例如 H.264 的 RFC 3984)。然后查找该 RFC 的库或实现(并查看 jrtp),或者自己编写代码。
First, know what codec you have. (H.263, H.264, MPEG-2, etc). Then find the IETF AVT RFC for packetizing that codec (RFC 3984 for H.264 for example). Then look for libraries or implementations of that RFC (and look in jrtp), or code it yourself.
jrtplib 仅提供基本的 RTP/RTCP 功能。您必须自己进行任何特定于媒体类型的打包。如果您查看 RTPPacket 构造函数,它需要有效负载数据和有效负载长度参数(除其他外)。您也可能会对 RTPPacketBuilder 感兴趣。
如果您决定自己执行此操作,则需要阅读相应的 RFC 并按照 Jesup 的说明进行实施。
仅供参考,c++ live555 Streaming Media 库可以为您处理许多视频格式的打包,但也有很多更复杂。
jrtplib provides only basic RTP/RTCP functionality. You have to do any media-type specific packetization yourself. If you look at the RTPPacket constructor, it takes payload data and payload length parameters (amongst others). The RTPPacketBuilder could also be of interest to you.
If you decide to do this yourself, you need to read the corresponding RFCs and implement according to them as jesup stated.
FYI, the c++ live555 Streaming Media library handles packetization of many video formats for you, but is also a lot more complex.