【问题标题】:rtmp audio message(0x08) format (mp3)rtmp 音频消息(0x08)格式(mp3)
【发布时间】:2014-01-23 02:16:03
【问题描述】:

我正在尝试为 rtmp(仅限音频)编写一个小客户端。到目前为止,我的通信正常(red5 服务器),但现在我被音频数据卡住了。

服务器正在发送 MP3 44KHz 16 位立体声。 我得到了我的 Audiomessage,它由标识编解码器 (0x2f) 的字节和看起来像这样的音频数据组成

ff:fb:92:64:eb:80:03:98:58:d2:e9:26:1b:7e:5d:e7:4a:1a:19:26:5c:8b:89:07:47:44:98:6b:91:2d:9c:28:b4:33:15:70:82:c9:29:87:8d:e4:8f:31:83:84:7b:e5:82:b5:57:62:00:02:e5:bb:f1:86:15:7a:8f:da:9e:ca:4f:83:9d:0a:c4:56:7b:b3:3d:56:43:ba:2b:28:b8:9d:0c:e1:82:0c:08:36:24:f3:39:67:54:b7:41:d9:8e:ef:36:96:56:22:d2:b9:9f:ae:40:43:8e:ea:39:52:0c:a4:48:25:02:54:91:c7:35:37:2d:be:f2:37:23:61:65:35:d9:0f:aa:18:b4:37:d9:d4:c8:68:21:3c:bd:ea:c1:d0:98:df:eb:96:59:99:88:09:37:36:c3:8b:47:80:64:84:41:ba:35:ea:a6:0a:d6:74:9e:09:f6:a5:d7:3f:1f:53:d8:fb:8d:d9:d3:f8:ee:c7:c1:68:25:25:8e:ae:6a:1c:08:52:9d:58:cf:cf:87:c1:ba:a4:f0:63:76:b0:b4:65:79:1b:3b:21:5f:2f:b5:7a:18:43:af:f7:fd:15:0c:87:c9:73:54:95:22:94:cc:cb:e3:da:4d:e0:f3:8a:95:69:69:eb:32:71:57:08:49:76:e0:f3:84:8c:4b:4c:84:6b:5d:7a:c8:c9:d7:df:d5:e2:68:bb:5f:6c:9f:ba:f4:0a:6c:6e:51:8a:b3:59:9a:07:0c:e4:2a:9d:ec:d1:99:53:48:f2:8b:22:b2:d3:bf:e1:5b:9f:ee:49:9f:2c:ee:63:1f:6f:da:90:e7:65:00:55:99:97:77:b9:e8:97:43:81:fd:32:e4:81:20:d0:78:f5:4f:59:47:39:f2:57:5d:f4:d5:91:48:c9:45:10:52:49:4d:04:87:6b:0e:a5:72:ed:34:74:08:93:5b:8a:54:3a:d9:7e:53:8f:c7:5e:b1:99:f3:55:63:72:49:99:55:3a:b8:0d:73:3b:2a:ea:9a:b5:32:d2:3b:61:c2:4e:e9:56:78:99:14:4a:a7:46:f4:ee:ae:6f:ff:c8:85:2d:07:68:ad:e2:84:dd:0a:bd:2e:93:12:43

我没有发现关于数据格式的小事。由于第一个字节始终为 0xff,我假设每个音频数据块都有一个描述其内容的小标题。 adobe 的 rtmp 规范对音频消息包的格式只字不提(只有两行说它是音频消息……哇)。

有谁知道音频信息的格式,或者至少是我找到某些东西的来源?

【问题讨论】:

    标签: audio format mp3 message rtmp


    【解决方案1】:

    Adobe 规范没有记录基本流格式,因为它们包含在自己的文档中,而且通常很大。 MP3 符合 ISO/IEC 11172-3。

    这里有一个很好的概要: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

    【讨论】:

    • 谢谢。 rtmp 使用音频消息中的 mpeg 帧。您的链接说文件具有相同的格式,所以如果我现在将所有帧写入文件中,它应该是有效的 mp3?
    • 是的,它将以 .mp3 格式播放。请注意,这可能不适用于其他编解码器。例如,AAC 将要求您将序列头转换为 ADTS 头,并在将其写入文件之前将其添加到每一帧。
    • 现在有点用了。服务器给了我大约 200 KB 的数据,然后无缘无故停止传输(我不知道为什么)。根据 Windows 资源管理器,该文件的长度也应为 12 秒,但不同的媒体播放器只能播放几分之一秒。当删除文件的一部分时,声音会随之改变(大胆的图表显示变短)。我究竟做错了什么?如果有人帮助我,我也可以发送 mp3 文件
    • 发布文件。我去看看
    • 我已经发现了错误。好像我在解析音频消息时搞砸了一些东西(我想知道我是如何设法在不崩溃的情况下接收到任何东西的)。但现在我仍然有一段时间后停止发送数据的问题。我读到我必须发送一个确认,并且我还在 flashplayer 的原始通信中的 Wireshark 中看到了这条 rtmp 消息。但它只说我应该在收到“windowlength”字节后发送它。但我既不知道窗口长度(来自wireshark,我猜它是125000)也不知道要数什么,所有通过套接字的东西?
    猜你喜欢
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2017-09-08
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多