본문 바로가기

ESP32

RTSP를 이용한 Arduino ESP32 오디오 스트리밍

반응형

 

최근에 저는 Kevin HesterMicro-RTSP 를 기반으로 한 Thomas PfitzingerMicro-RTSP-Audio 프로젝트를 발견했습니다 .

 

실시간 스트리밍 프로토콜 ( RTSP )은 서버와 직접 통신하여 데이터를 스트리밍하여 멀티미디어에서 엔드포인트 장치로 실시간 데이터를 전송하는 애플리케이션 수준의 네트워크 통신 시스템입니다.

 

라이브러리를 수정하여 아두이노 에서도 컴파일되도록 하고, 아두이노 규칙을 준수하도록 예제를 변환하려고 했습니다. 하지만 테스트를 시작하자마자 메모리 오류가 발생 하여 소스 코드를 거의 하루 종일 살펴보며 무엇이 잘못되었는지 파악하려고 애썼습니다. 이 과정에서 몇 가지 최적화 작업을 수행했습니다.

 

결국 문제는 라이브러리 코드가 아니라 제공된 예제에 있다는 것이 밝혀졌습니다. 일부 객체가 스택에 할당되었고, setup 메서드 이후에 이 객체는 더 이상 유효하지 않았습니다!

 

업데이트된 Micro-RTSP-Audio 라이브러리는 Github 에서 찾을 수 있으며, 예제는 현재 작동하고 있으며 오디오 도구 라이브러리 에 좋은 통합을 제공하고 있습니다 .

 

아두이노 스케치

 

#include "AudioTools.h"
#include "AudioLibs/RTSPStream.h"
#include "AudioStreamer.h"
#include "RTSPServer.h"

int port = 554;
int channels = 1;
int sample_rate = 16000;
int bits_per_sample = 16;
const char* wifi = "wifi";
const char* password = "password";

SineFromTable<int16_t> sineWave(32000);                // subclass of SoundGenerator 
GeneratedSoundStream<int16_t> sound(sineWave);             // Stream generated from sine wave
RTSPSourceAudioStream source(sound);                       // Stream sound via RTSP
AudioStreamer streamer = AudioStreamer(&source);
RTSPServer rtsp = RTSPServer(&streamer, port);


void setup() {
  Serial.begin(115200);
  AudioLogger::instance().begin(Serial, AudioLogger::Info);

  // Setup sine wave
  auto cfgS = sineWave.defaultConfig();
  cfgS.channels = channels;
  cfgS.sample_rate = sample_rate;
  cfgS.bits_per_sample = bits_per_sample;
  sineWave.begin(cfgS, N_B4);

  // Start Wifi & RTSP
  rtsp.begin(wifi, password);
}

void loop() { delay(1000); }

 

이 (잠재적으로 업데이트된) 예제는 Github 에서 찾을 수 있습니다 .

 

생성된 사운드를 들으려면 VLC 미디어 플레이어를 사용하세요 . 파일 -> 네트워크 열기로 이동하여 URL rtsp://server-address를 입력하세요.

 

주의 : 현재는 1개 채널의 샘플링 속도 16000만 지원됩니다 !

 

또한 참조하세요: 

 

  1. 토끼 굴 속으로: RTSP를 통한 MP3 파일 게시
  2. Arduino 오디오 도구 – RTSP 재검토
  3. 오디오 스트리밍 – Opus 코덱
  4. Arduino Music Streaming mit live555?
  5. 마이크로컨트롤러용 고속 오디오 코덱
  6. Arduino AudioTools: http post를 통한 오디오 스트리밍
  7. Arduino에서 Spektrum 위성 프로토콜 사용
  8. Arduino ESP32용 Synthesis ToolKit(STK) 라이브러리 – MIDI 및 BLE 지원
  9. ADPCM 및 WAV 파일
  10. Arduino를 이용한 RC 비행기용 소형 서보

 

기사의 출처는 다음과 같습니다. 아주 재미있는 프로젝트라 관심있게 보고 있습니다.

 

 

E-Speaker Using ESP32

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^