GStreamerとサンプリングレート変換

GStreamerとサンプリングレート変換

私のサウンドカードはAlsaで部分的にのみサポートされています。つまり、再生は48kHzでのみ動作します。私のオーディオファイルのほとんどは44.1kHzで、必要なすべての機能を備えているので、Exaileをオーディオプレーヤーとして使用したいと思います。

問題は、exaileのバックエンドであるgstreamerが現在の設定を使用してサンプルレートを変換しないため、オーディオファイルを再生すると速度が速くなりますが、mplayerでファイルを再生すると問題なく動作し、mplayerがサンプルレートを変換することです。遊ぶとき。

サンプルレートを変換するためにgstreamerを取得する方法はありますか?

編集する:問題のサウンドカードはE-MU 0404 PCI Expressです。http://alsa-project.org/main/index.php/Matrix:Vendor-Creative_Labsそしてhttp://alsa-project.org/main/index.php/Matrix:Module-emu10k1-fpga

答え1

私は最近E-MU 0404 USBを購入しましたが、私の経験が役に立つと思います。

少し遊んだ後は、44100Hzと48000Hzを再生できるようです(おそらく - 確認していませんが、最大192kHzまでさまざまな周波数...)

GStreamerはサンプリングレート変換が可能ですが、この機能を設定するのには適していない可能性があります。疑いなく、これを構成する方法は非常に混乱しており、おそらくgconfに関連しているでしょう。しかし、動作しなければならない他の場所もたくさんあります。好みの高い順に並べておきました。

これらのデバイスの秘密は、ミキサーで「クロックスピード」スライダーを設定するようです(ターミナルベースのalsamixerはこれを表示し、他のデバイスではスライダーを隠す必要がないと思います)。 0に設定すると44100Hz、1に設定すると48000Hzなどになります。迷惑ですが可能です。

注:SPDIF出力を使用するには、デバイス1から出力されるようにメディアプレーヤーを設定する必要があります。パススルー(AC3 / DTS)を試している場合、サンプルレートが正しく設定されていないと機能しません(通常48000kHz、つまり「1」設定)。

この時点で動作します。スライダを操作せずにこれを行う方法は次のとおりです。

サンプルレート変換を実行するには、適切な〜/ .asoundrcを作成して目的の効果を得ることができる必要があります(これは、E-MUが2番目のサウンドデバイスであると仮定しています。aplay -lで確認できます)。以下はアナログケーブルがないためテストされていません。

pcm.!default {
         card 1
         device 0
         rate 48000
}

ctl.!default {
         type hw           
         card 1
}

ALSAを介して設定すると、すべてがうまく機能するはずです。ただし、PulseAudioを介して設定するには、/etc/pulse/daemon.confを編集してdefault-sample-rate行が読み取られていることを確認してください(";"、数値は正しい):

default-sample-rate = 48000

(からhttps://wiki.archlinux.org/index.php/PulseAudio#Choppy.2C_overdriven_sound)

関連情報