流媒体MP3解码器
streamp3的Python项目详细描述
流量3
这个库使用lame库实现流式mp3解压。
状态
安装
PIP
pip install streamp3
用法
要开始解码mp3,请构造一个mp3decoder,并将其以二进制形式传递
流或bytes
对象。然后您可以访问bit_rate
,sample_rate
,
以及num_channels
属性以获取有关mp3的信息。
fromstreamp3importMP3Decoderwithopen('my.mp3','rb')asmp3_file:decoder=MP3Decoder(mp3_file)print(decoder.bit_rate,decoder.sample_rate,decoder.num_channels)
然后可以使用read()
方法直接从流中读取样本
或者使用解码器作为迭代器。样本作为bytes
对象返回,
它是16位的pcm编码,采样交叉在信道中。这个
示例使用
PyAudio。
importpyaudiofromstreamp3importMP3Decoderwithopen('my.mp3','rb')asmp3_file:decoder=MP3Decoder(mp3_file)audio=pyaudio.PyAudio()device=audio.get_default_output_device_info()speaker=audio.open(output=True,input_device_index=device['index'],format=pyaudio.paInt16,channels=decoder.num_channels,rate=decoder.sample_rate)forchunkindecoder:speaker.write(chunk)
开发
设置
我们通常使用pyenv创建虚拟环境。以下脚本 为项目创建虚拟环境并安装依赖项。
pyenv install 3.6.4 pyenv virtualenv 3.6.4 streamp3 pip install -r requirements.txt
LAME也必须安装。这可以在OSX上通过自制完成。
brew install lame
部署
项目使用setup.py进行安装,并部署到 PyPI。该项目可用于安装 以下命令:
python setup.py clean --all; rm -r ./dist
python setup.py sdist bdist_wheel
然后可以使用tween将wheel和source分发上传到pypi。
twine upload --repository-url=https://upload.pypi.org/legacy/ dist/*
许可证
版权所有2018 Pylon,Inc.
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。