데이터를 오디오 출력으로 어떻게 전송할 수 있나요? 예를 들어 아카이브, 드라이브 백업, 프로그램 등의 파일을 듣고 싶습니다. 아니면 내 하드 드라이브를 듣고 싶습니다. 약 7년 전에 이것이 가능하다는 내용을 읽은 기억이 어렴풋이 나지만 지금은 아무것도 찾을 수 없습니다.
따라서 파일, 디스크 읽기, 심지어 네트워크 연결까지 무엇이든 들을 수 있기를 원합니다. 나는 이것이 Linux에서 확실히 가능하다는 것을 알고 있습니다. 어떻게 해야 합니까? 루분투 20.04 사용
답변1
나는 배관 작업이 aplay
잘 작동한다는 것을 알았습니다.
journalctl | aplay
그다지 예쁘지는 않지만 놀라울 정도로 잘 작동합니다.
이것은 예이다aplay(1)
:
aplay -c 1 -t raw -r 22050 -f mu_law foobar
will play the raw file "foobar" as a 22050-Hz, mono, 8-bit, Mu-Law .au file.
alsa-utils
이는 debian/ubuntu 패키지의 일부로 찾을 수 있습니다.
이것은 제가 가장 좋아하는 1-liner입니다. 작은 C 프로그램을 gcc에 반영하고 컴파일된 버전을 실행하여 재생되도록 합니다. 그 결과 놀랍게도 15분짜리 노래가 반복해서 재생되었습니다.
echo "g(i,x,t,o){return((3&x&(i*((3&i>>16?\"BY}6YB6$\":\"Qj}6jQ6%\")[t%8]+51)>>o))<<4);};main(i,n,s){for(i=0;;i++)putchar(g(i,1,n=i>>14,12)+g(i,s=i>>17,n^i>>13,10)+g(i,s/3,n+((i>>11)%3),10)+g(i,s/5,8+n-((i>>10)%3),9));}"|gcc -xc -&&./a.out|aplay
답변2
이것은 가능합니다 /dev/dsp
. 이는 OSS의 일부이며 OSS는 오랫동안 Linux 커널의 일부가 아니었습니다. cat some_file >/dev/dsp
예전에는 or 처럼 간단 했습니다 some_program >/dev/dsp
.
PulseAudio에서 제공합니다 padsp
.
padsp
지정된 프로그램을 시작하고/dev/dsp
OSS 호환 오디오 장치(및 보조 장치)에 대한 액세스를 PulseAudio 사운드 서버로 리디렉션합니다.
(원천)
예:
무작위 데이터
</dev/urandom padsp tee /dev/dsp >/dev/null
일반 파일
</etc/fstab padsp tee /dev/dsp >/dev/null
네트워크 활동
sudo tcpdump | padsp tee /dev/dsp >/dev/null
블록 장치
sudo cat /dev/sda | padsp tee /dev/dsp >/dev/null
padsp
이 pulseaudio-utils
패키지 의 Ubuntu 18.04.4 LTS에서 .