将音频数据从 RTMP Stream 转换为 Python 中的 PCM 或 WAV 格式

问题描述

我们有一个运行在 RTMP 服务器上的音频流,我们尝试使用 Python 中的 librtmp 库来读取流。我们使用下面的代码获取流数据-

import librtmp

# Create a connection
conn = librtmp.RTMP("rtmp://your.server.net/app/playpath",live=True)
# Attempt to connect
conn.connect()
# Get a file-like object to access to the stream
stream = conn.create_stream()
# Read 1024 bytes of data
data = stream.read(1024)

这是我打印 data 时的结果:

b'FLV\x01\x05\x00\x00\x00\t\x00\x00\x00\x00\x12\x00\x01M\x00\x00\x00\x00\x00\x00\x00\x02\x00\nonMetaData\x03\x00\x08duration\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08filesize\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05width\x00@\x94\x00\x00\x00\x00\x00\x00\x00\x06height\x00@\x86\x80\x00\x00\x00\x00\x00\x00\x0cvideocodecid\x02\x00\x04avc1\x00\rvideodatarate\x00@i\x00\x00\x00\x00\x00\x00\x00\tframerate\x00@>\x00\x00\x00\x00\x00\x00\x00\x0caudiocodecid\x02\x00\x04mp4a\x00\raudiodatarate\x00@`\x00\x00\x00\x00\x00\x00\x00\x0faudiosamplerate\x00@\xe7p\x00\x00\x00\x00\x00\x00\x0faudiosamplesize\x00@0\x00\x00\x00\x00\x00\x00\x00\raudiochannels\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x06stereo\x00?\xf0\x00\x00\x00\x00\x00\x00\x00\x07encoder\x02\x00\x1eRogue Amoeba RTMP Streamer 1.0\x00\x00\t\x00\x00\x01X\x08\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x11\x90\x00\x00\x00\x0f'

data 对象包含带有 FLV 标签的编码数据,由于文档不足,我们一直无法使用 data 转换为 PCM 格式。那么有没有办法做到这一点?或者Python中是否有其他库可以读取rtmp流并转换为PCM格式?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)