2011-10-24 2 views
1

특정 포트에서 수신중인 Linux에서 mp3 오디오 사운드 버퍼를 재생할 수 있기를 원합니다. 이 연속 라이브 스트림. 나는 많은 다른 사람들의 사이에서 pulseaudio, portaudio, mpg123을 보았지만 무엇을 해야할지 모를 것 같습니다.리눅스에서 mp3 사운드 버퍼 재생

mp3 사운드는 naudio와 lame을 사용하여 변환 된 네트워크의 다른 컴퓨터에서 수신됩니다. Windows PC에서 사운드를 수신하면 C#에서 제공된 naudio를 사용하여 간단히 재생할 수 있습니다. 그러나 나는 리눅스에서이 문제를 어떻게 해결해야할지 확신이 없다.

모든 의견을 크게 기뻐할 것입니다. 사전에

덕분에,

답변

1

당신은 madplay 봤어? http://www.underbit.com/products/mad/

  • http://alcor.concordia.ca/manpages/sys1/madplay.1.html
  • 그것은 표준 입력에서 MP3 데이터를 읽을 수

    • . 당신은 간단한 프로그램 madplay의 표준 입력하면 소켓에서 읽을 데이터를 리디렉션, 또는 쉘 명령을 할 수있다 : 당신이 리눅스 박스에 alsa를 사용하는 경우

      netcat <hostname> <portname> | madplay - -o wave:- | aplay 
      

      위에서 작동합니다.

      • 스트림 TCP 소켓을 통해 MP3 파일 사용 netcat을 :

        cat ~/Music/Linkin\ Park/06\ Demos\,\ Unreleased\ \&\ Other/1997\ -\ Xero/04\ -\ Stick\ N\ Move.mp3 | netcat -l localhost -p 8899

      • 연결

        는 내 컴퓨터에서 다음 작업을 수행 할 수있어, 더 정확하게하려면 포트에 연결하고 netcat을 사용하여 MP3 데이터를 읽고 스트림을 madplay로 라우팅합니다.

        netcat localhost 8899 | madplay - -o wave:- | aplay

    +0

    감사를 들어 정보. 나는 그것을 조사하고 내가 성공했는지 또는 더 도움이 필요한지를 알려줄 것입니다. 내가 버퍼링 된 사운드 데이터 대신 mp3 파일을 전송하지 않기 때문에 스트림 버퍼에서 작업하려고 시도한 적이 있습니까? – Ali

    +0

    스트림이나 파일을 전송하는 것이 중요하지 않습니다. 내가 아는 바로는, mp3 데이터는 헤더가있는 "프레임"의 묶음이며 재생을 시작한 프레임은 실제로 중요하지 않습니다. –

    1

    mpg321을 nc (netcat)와 함께 직접 사용할 수 있습니다.

    • 는 특정 호스트의 특정 포트에 스트림을 보내기 : nc 192.168.1.55 4455 <example.mp3
    • 는 NC와 포트를 듣고 직접 스트림 재생 mpg321에 스트림을 리디렉션 : nc -l 4455 | mpg321 -