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가 두 번째 사운드 장치라고 가정합니다. 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)

관련 정보