공개용 RTP/RTSP 라이브러리중에 쓸만한 소스 추천좀 부탁합니다

swhong의 이미지

안녕하세요? 이번에 pSOSystem에서 RTP/RTCP, RTSP 구현을 해야하는데 리눅스에서 쓸만한 소스를 먼저 보려구합니다. 혹시 RTP/RTCP, RTSP를 포팅해보신분이 계시다면 추천할 만한 소스좀 부탁드립니다. 될 수 있으면 깔끔하게 다른코드말고 저것만 들어 있으면 더욱 좋겠습니다.

jee1의 이미지

RTSP 라면.... Real Time Streaming Protocol 을 말하시는 것인가요?

맞다면... www.videolan.org 한번 가보시는 것이 좋을듯 합니다...

swhong의 이미지

C 로 구현된 소스를 찾고 있는데, 제가 찾아본 RTP/RTCP, RTSP의 구현은 모두 C++, JAVA 로 된것 밖에는 찾을 수가 없네요... Bellab 에서 제공하는 rtplib 만 C로 되어있는데, 이것은 RTSP 가 구현되어 있지 않아서...

혹시 RTSP라도 C로 구현되어 있는 것이 있는지 찾아 봤는데, 힘드네요...찾기가..

그리고 혹시 이런 문제,

1. C 로 된 librtp에 C++로 구현된 RTSP를 포팅한다.
2. C++로 모두 구현된 소스를 C로 포팅한다.

둘중에 한 방법을 고르라면, 어떤 것을 선택하시겠습니까?

고수님들의 조언을...

- by swhong in jgdr.net -

cjh의 이미지

--
익스펙토 페트로눔

swhong의 이미지

live.com에서 제공하는 library역시 C++ library입니다. 지금까지 제가 찾아본 바로는

BellLab,
Darwin,
Hellix,
Komsys,
live.com,
MPEG4IP,
PopCorn,
SR-RTP(nms.lcs.mit.edu),
UCL-CommonMultimediaLibrary,
VOVIDA

등입니다. 이것들은 모두 C++로 구현이 되어 있네요... Bellab은 rtplib만을 C로 구현한 것이고, 그래도 고무적인 것은 linphone 이라는 VoIP 소스에 RTP와 RTCP가 C로 구현된 library가 있다는 것입니다. 하지만 아직도 RTSP가 C로 구현된 것은 찾질 못했네요...

ㅠ.ㅠ

- by swhong in jgdr.net -

익명 사용자의 이미지

rtsp가 c로 구현된걸로 알고 있는데요.. 저도 이걸 이용해서 rtsp 서버를 만들었는데.. 아쉬운것은 오픈소스 프로젝트가 이미 드롭된지 오래되었다는 게 좀 그렇죠..

antinuke의 이미지

제가 rtsp 서버를 구현하는데 같은 이유로 고생을 좀 했는데 spook 라는 소스를 구했는데.. 이건 다 C로 되어있습니다.
좀 오래전에 drop 된 프로젝트이긴 하지만, 공부하시기엔 좋을 것 같네요.

yeppiguy의 이미지

임베디드 환경에서 개발하시네요.
저도 임베디드 환경에서 VoIP시스템 쪽에서 일을 하고 있는데,
원하는 소스를 구하기가 만만치가 않더군요.

임베디드 환경이라서, 저도 모든 코드가 C로 구현되어 있는데,
RTP쪽은(저는 RTSP쪽은 아직 안해봐서 모르겠구요), openh323의 C++코드를 가져다가 C로 변환해서 사용했습니다.
지금은 이것저것 필요한 것들을 추가해서 플랫폼 독립적인 형태의 라이브러리로 갖추어졌는데, 처음엔 저도 님처럼 C로 구현된 라이브러리를 찾으러 다니곤 했지만, C로 된 코드는 아시겠지만, 가독성이 떨어지기 때문에 자신의 환경에 맞추어서 리팩토링하기가 만만치 않습니다.

그리고, 대부분의 RTP라이브러리 들은 내부적으로 사용하는 또다른 라이브러리를 지원해주어야 하는 제약사항이 있어서, 이런 부분들을 뜯어내는데 시간이 대부분이 걸리고, 다 뜯어내더라도 안정성 시험하느라 시간이 다 가죠.
개인적으로는 openh323라이브러리 쪽에 비교적 작업하기가 용이했읍니다. 파일도 그렇게 많지 않고, ptlib쪽 문서를 참조하면서 의존코드들을 하나씩 자신의 임베디드 환경쪽 라이브러리에 맞게 변형하면서 작업했거든요.

좀더 풍부한 기능의 RTP라이브러리가 필요하다면, vovida쪽을 적극 추천합니다. 코드가 좀 많아서 작업시간은 많이 걸리겠지만, 다양한 기능을 지원하더군요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.