【发布时间】:2012-03-06 12:33:07
【问题描述】:
好的,我遇到了以下问题:
我有一个 IP 摄像机,它能够通过 RTP 传输 MPEG4 数据
我可以通过 RTSP 连接到这台相机
我可以接收原始 RTP 数据。
那么我现在有什么问题呢?
1.提取数据
我真正想要的数据是什么?我知道我必须对 RTP Header 进行中继 - 但是我还需要从 RTP 数据包中删除什么吗?
2。打包模式
我读到我的SDP 中应该有一个字段Packetization Mode - 好吧它不存在。这是否意味着我必须假设某种标准的打包模式?
3.解包
如果我做对了,我需要用Marker Bit = false 缓冲所有传入的帧,直到我得到一个带有Marker Bit = true 的帧才能获得完整的MPEG4 Frame。 MPEG4 Frame 我到底要了解什么?关键帧 + 数据直到下一个关键帧?
4.解码
那我还要解码数据吗?在其他线程中,我看到人们使用了另一个解码器——但是还有什么要解码的呢?我的意思是相机应该发送已经MPEG4编码的数据?
5.库
如果我真的需要解码数据,有没有我可以使用的开放库?或者甚至有一个库,它有一些功能,我可以在其中转储我的 RTP 数据,然后魔法发生,我得到了我的 mp4。 (但我认为不会有那样的事情......)
注意:我想做的一切都应该是我自己的应用程序的一部分,例如,我不能使用外部软件来解析数据。
长话短说-我真的需要一些逐步的解释才能做到这一点。我知道这是一个广泛的问题,但我不知道更多。我还查看了RFCs,但我无法从中提取太多信息。
另外我已经查了这两个问题:
MPEG4 extract from RTP payload
但第一个问题的冗长答案也无法让我明白一切。
更新:好吧,我进一步了解了一点,现在我不知道该去哪里找了。看来,我的目的实际上并不需要所有打包的东西等。我还用openRTSP 录制了一个流。当我在十六进制编辑器中打开这些文件时,我看到有 16 个字节我无法识别,然后是 SDP 的 config 部分。然后框架以通常的00 00 01 B6 开始。 oprenRTSP 还为 MP4 添加了某种尾巴——好吧,我实际上不知道我需要什么,什么只是一些非强制性的“额外”东西。
【问题讨论】: