RTSP Audio Straming 질문 드립니당ㅠㅠㅠ

bsh09의 이미지

안녕하세요.. 이번에 RTSP를 통해 음악 스트리밍을 구현하게 되었는데요
스트리밍 관련 자료조사를 하다보니 RTSP를 사용해서 일반적으로 노래 스트리밍 사이트처럼 기능을 구현하는 것 같아요

1.
RTSP로 음악 파일을 스트리밍을 하고 싶은건데, 수신 측에서 RTSP로 된 패킷을 받으면 재생은 어떤 방식으로 하면 되는 건가요?
패킷을 받으면, 헤더를 분리해서 데이터를 그냥 Audio Driver 에게 넘기면 되는건지.. 그리고 파일 재생 위치를 옮기면 어떤식으로 패킷을 요청하고 받아서 재생하는건지.. 등등..
프로토콜에 대한 내용은 잘 나오는데 플레이어 부분은 잘 안나와서 모르겠네요

그리고 서버측이 Desktop(Windows) 환경에서 작동되고 클라이언트 측이 Raspbarry PI(Linux)입니다.

2.
라이브러리를 사용한다면 Live555 를 사용할 것 같은데.. 라이브러리를 사용한다면 금방 스트리밍을 구현 가능할까요?
라이브러리 안쓰고 공부 한다고 생각하고 두 달 정도로 RTSP 스트리밍을 구현할까도 생각하는데 가능할까요??..(네트워크 및 운영체제 학습을 한 대학생입니다)

감사합니다!

towstock의 이미지

RTSP는 미디어 컨트롤 프로토콜입니다. RTSP 프로토콜은 미디어 자체를 스트리밍 하는 것과는 관련이 없습니다.
미디어 자체 스트리밍은 RTP등 다른 프로토콜을 사용하셔야 합니다.

불량청년의 이미지

RTSP(통상 streamming service라고 하죠)를 구현하기 위해선 RTSP, RTP, RTCP의 protocol이 필요합니다.

서버와 Control(DESCRIBE, SETUP, PLAY, PAUSE, STOP) command는 RTSP로 처리해주고

서버에서 날라오는 data는 RTP로 오게 됩니다.

RTSP SETUP할 때, 보통 video, audio channel에 대해서 각각 설정을 하고 서버에 보내게 되는데 이때, audio channel만 SETUP 해주면 audio data만 날라 옵니다.

RTP packet은 depacketizing을 해줘야 raw data를 뽑아 decoder에 넣어 PCM data를 확보 및 소리가 낼 수 있습니다.

어떤 audio codec을 서비스 하려고 하는건지 모르겠지만, codec과 parsing쪽은 ffmepg를 쓰면 될겁니다.

또한, 현재까지 RTSP에서 지원하는 audio codec은 제한적입니다. AMR-NB, WB, AAC, AAC+, RealMedia, MP3 정도일껍니다.

RTCP는 뭐~ connection 유지 처리를 위해 사용하는 거니 딱히 처리할건 없습니다.

공부를 해보시려면, ffmpeg source code를 다운받아 리뷰해 보시면 도움이 될껍니다.

H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.