필자가 필요해서 메모해 두는 내용이다. 

     

    우선 라즈베리파이 2대를 이용해서 RTSP 스트리밍을 테스트한다. 따라서 2대의 라즈베리파이가 필요하다. 필자는 RTSP 테스트용 장비를 설정하고 있다. 실제로는 PC와 임베디드 장비간 RTSP를 진행할 예정인데말이다..  프로그래밍하다 테스트 하려면 양쪽 모두 테스트할 수 있는 장비가 필요했기 때문에 메모를 남긴다. 

     

    우선 설치하는 내용은 거의 비슷할 것이다.

     

    1. 소프트웨어 패키지 설치

      설치패키지는 양쪽 모두 동일하게 설치한다. 

    $ sudo apt update

    $ sudo apt install -y gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad  gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-alsa libgstrtspserver-1.0-dev

     

     

    2. IP를 이용하여 음성전송

    2.1. 수신

      수신쪽은 다음과 같이 명령을 입력하면된다.

    $ gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,media=audio,clock-rate=90000,encoding-name=MPA ! rtpmpadepay ! decodebin ! audioconvert ! autoaudiosin

     

    2.2. 송신

    송신 쪽은 다음과 같이 입력한다.

      $ gst-launch-1.0 filesrc location=./test.mp3 ! decodebin ! audioconvert ! lamemp3enc ! rtpmpapay ! udpsink host=

    192.168.1.4 port=5000

     

    그리고 걀과는 다음과 같다. 큰 문제없이 스트리밍 되는 것을 확인할 수 있다. 

     

     

    3. 멀티캐스트를 이용한 MP3파일 스트리밍

    다음은 멀티 캐스트를 이용하여 MP3를 스트리밍 해보자. 멀티 캐스트 이므로, 실제 사용하는 물리 IP말고, 가상으로 지정한 IP를 사용할 수 있다.  여기에서 사용할 가상 IP 그룹은 224.1.1.1이다.

    3.1. 송신

      멀티캐스트 그룹은 224.1.1.1로 설정하였다. 

    $ gst-launch-1.0 -v   filesrc location=you.mp3 !   mpegaudioparse !   rtpmpapay !   udpsink host=224.1.1.1 port=5000 auto-multicast=true

     

    3.2. 수신

      수신측에서는 스트림 서버(송신)쪽 멀티캐스트 그룹에서 데이터를 받도록 하였다.

    $ gst-launch-1.0 -v udpsrc address=224.1.1.1 port=5000 caps="application/x-rtp, media=audio, clock-rate=90000, encoding-name=MPA, payload=14" ! rtpmpadepay ! decodebin ! audioconvert ! audioresample ! autoaudiosink

     

     

    4. 마이크를 이용한 스트리밍

      마이크를 이용해서 전체 스트리밍은 다음과 같이 입력하여 진행할 수 있다. 

    4.1. 입력기 확인

      라즈베리파이에는 바로 사용할 수 있는 마이크가 없으므로, USB 오디오 장치를 연결한다. 그리고 다음과 같이 명령을 입력하여 장치의 인덱스를 확인할 수 있다. 

     

    $ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 3: Device [USB Audio Device], device 0: USB Audio [USB Audio]
      Subdevices: 1/1
      Subdevice #0: subdevice #0

     

    위의 메시지에서 카드 3번, 디바이스 0번 으로 확인되었다. 

     

    4.2. 송신

      송신쪽에서는 다음과 같이 음성을 출력할 수 있다. 앞서 카드 3번에, 디바이스 0번이니 device에는 3,0을 입력하면된다.

    $ gst-launch-1.0 -v alsasrc device=plughw:3,0 ! audio/x-raw,rate=16000,channels=1 ! audioconvert ! audioresample ! udpsink host=224.1.1.1 port=5000 auto-multicast=true

     

    4.3. 수신

      출력 쪽도 다음과 같이 입력하면 된다. 

    $ gst-launch-1.0 -v udpsrc address=224.1.1.1 port=5000 caps="audio/x-raw, rate=16000, channels=1, format=S16LE" ! audioconvert ! audioresample ! autoaudiosink

     

    라즈베리파이 몇개를 더 설치해서 재생되는지 해보면 되겠다. 어쨋든.. 특별한 문제가 없는 것을 확인하였으니, 이제 이녀석들은 테스트 장비가 되기로...

     

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기