2017-11-05 9 views
0

私はこれに対する解決策を探していましたが、私は完全に固執しています。 icecast/shoutcastライブラリは、すべて私が使用しているようにPython 2.7のように見えます。shoutcast(DNAS)またはアイスキャストへのPythonブロードキャスト

ブロードキャストと認証をどこから始めるべきかについてのアイデアは非常に役に立ちます。私はmp3ファイルをストリーミングすることを探しています。

TIA。

+0

それはSHOUTcastをすることがありますか?代わりにIcecastを使用できるのであれば、それは単なるHTTP PUTリクエストです。 SHOUTcastソースは非標準です。 – Brad

+0

@ブラッドicecastも動作しますが、PUTリクエストを介してストリームする方法はもうわかりません。 –

答えて

0

まず、オーディオストリームをエンコードする必要があります。リアルタイムでこのストリームを実行する必要があり、一定のサンプルレートが必要です。これは、MP3ファイルをパイプで渡すだけでは不十分です。ストリームを壊す可能性のあるID3タグを持つことができ、異なるサンプリングレートである可能性があります。また、インターネットストリーミングのビットレートを一定にすることも理想的です(ただし、ストリームが機能するためには必要ありません)。

基本的には、それが再生されるのと同じレートで作成された1つの大きな終わりのないMP3ファイルがあります。

次に、IcecastサーバーへのHTTP PUTを作成するだけです。この質問を参照してください:Is there any way to do HTTP PUT in python

Icecastは一般的にbasic authを使用します。

あなたは(あまりコントロールではあるが)自分でこれを簡単に作成したい場合は、FFmpegのに殻から取り出す:

ffmpeg -re -i [some playlist] -f mp3 -method PUT http://example.com/some-stream 

example.comがあなたのIcecastのサーバーです)

+0

ffmpegを使うと、私のプロジェクトの他の部分もうまく動作します。 コールバックを使ってffmpegを呼び出す方法とコールする方法について正確に説明できますか? –

+0

ffmpegを次のように使用する: 'ffmpeg -i" [file] "-f mp3 -method PUT http:// [usr]:[pswd] @ [ホスト]:8000/stream.mp3' 結果:' av_interleaved_write_frame ):不明なエラー http:// [usr]:[pswd] @ [host]:8000/stream.mp3:エラー番号-10053発生サイズ= 7kB時間= 00:00:00.50ビットレート= 107.4kbits/sスピード= 43.9x ビデオ:0kBオーディオ:6kBサブタイトル:0kB他のストリーム:0kBグローバルヘッダー:0kB多重化オーバーヘッド:4.768518% 変換に失敗しました! ' アイデアはありますか? –

+0

@MattCowleyああ、入力の前に '-re'が必要です。速度は1xにする必要があります。 :-)また、ストリームの終わりなので、変換は常に "失敗"します。あなたが永続的な情報源から読むならば、問題はありません。そして、あなたのauth in-URLはうまくいくはずです。私はPythonを書いていないので、残念なことにPythonのコールバックを手助けすることはできません。 – Brad

関連する問題