web-dev-qa-db-ja.com

PythonファイルをMP3に変換し、品質を設定するためのライブラリ

オーディオファイル(.ogg、.wavなど)を取得してWebページで再生するためにmp3に変換するPythonライブラリを見つけようとしています。

また、再生の品質を設定することについての考えは素晴らしいでしょう。

ありがとうございました。

17
Abid A

PyMediaがこれを行うように見えます:

http://pymedia.org/

ビットレートを設定しながら、さまざまな形式に変換する方法については、こちらをご覧ください。

http://pymedia.org/tut/recode_audio.html

例えば.

params= {
'id': acodec.getCodecId('mp3'),
'bitrate': r.bitrate,
'sample_rate': r.sample_rate,
'ext': 'mp3',
'channels': r.channels }
enc= acodec.Encoder( params )
3
Jon

私が書いた ライブラリ それを行うように設計された= D

from pydub import AudioSegment
AudioSegment.from_file("/input/file").export("/output/file", format="mp3")

簡単!

ビットレートを指定するには、bitratekwargを使用するだけです…

from pydub import AudioSegment
sound = AudioSegment.from_file("/input/file")
sound.export("/output/file", format="mp3", bitrate="128k")
41
Jiaaro

私はgstreamerにPythonバインディングを使用しています。始めるのは少し難しいですが、いったん始めればほとんど何でも可能です。

コマンドラインから( gstreamerのドキュメント から):

_gst-launch -v filesrc location=music.wav ! decodebin ! audioconvert ! audioresample ! lame bitrate=192 ! id3v2mux ! filesink location=music.mp3
_

入力_filesrc location=..._は、.wavだけでなく、gstreamerが再生できるものであれば何でもかまいません。エンコードする前に、キャップフィルターと呼ばれるものを追加して、特定のレートにリサンプリングすることができます。

Pythonプログラムでは、gst.parse_launch(...)を使用し、filesrc要素とfilesink要素を取得し、setterを呼び出して入力ファイル名と出力ファイル名を変更します。

4
joeforker

また、 Python Audio Tools は、他のライブラリを必要とせずにジョブを実行できるはずです。これは、共有Webホスティングアカウントでこれを実行する場合に簡単になる可能性があります。 (しかし、確かに私はそれを試したことがないので、それがどれほど使いやすいかは確認できません。)

3
ewall

Ctypesモジュールを使用して、ダイナミックライブラリから直接関数を呼び出すことができます。外部Python libsをインストールする必要はなく、コマンドラインツールよりもパフォーマンスが優れていますが、通常は実装が困難です(もちろん、外部ライブラリを提供する必要があります)。

2
Tupteq

この単純なタスクのPythonモジュールのインストールを回避する別のオプションは、Pythonスクリプト(popenを使用)から "lame"または他のコマンドラインエンコーダーを実行することです。モジュール。)

1
juanjux