可変ビットレートのmp3ファイルを一度に1つのチャンクで受け入れるTornado Pythonサーバーがあります(チャンクは固定数のフレームで構成されています)。
私がしているのは、そのバイナリを転送することだけですが、チャンクの期間を知りたいです。可変ビットレートなので簡単な計算はできません。私は pymedia を調べていましたが、私は mac OS で開発していて、そこに pymedia をインストールできないようです (また、2006 年以降更新されていません)。私もpymadを試しましたが、インストールできませんでした(2007年以降更新されていません)。とにかくファイル中心のようです。
理想的には、たとえばミュータジェンが行う方法で、各チャンクからビットレートを抽出したいと思います。ただし、mp3 フレームまたは一連のそのようなフレームを入力したい場合、mutagen は入力としてファイルを必要とします。
def _on_read_frames(self, data):
logging.info('read from input:\n%s', data)
binary_audio = base64.b64decode(data)
# need to find out how many miliseconds went by here
更新: これはほぼリアルタイムのストリーミング アーキテクチャの一部であるため、mp3 は小さなチャンクでエンコードされるため、現在の解決策は、単純な計算を可能にする固定ビット レートを使用することです。可変ビット レートを使用する利点はほとんどないことに気付きました。ここ。