RTSP 스트리밍 재생에 관련된 질문입니다.

sanckldp의 이미지

안녕하세요.

현재, C++ 기반으로 RTSP 스트리밍 서버를 구축중입니다.

타겟이 되는 파일은 flv만 지원을 하며,

지금까지 구축하고 테스트한 것은, 여러가지 과정을 거쳐 flv를 전송가능한 TS 패킷으로 만들었습니다.

생선된 TS파일은 로컬에서 VLC플레이어로 파일재생을 하면 문제없이 플레이가 됩니다.

다만, 이 TS패킷을 "RTSP 서버 > VLC 클라이언트"로 스트리밍 패킷을 보낼때에 문제가 발생했습니다.

VLC에서 TCP로 OPTION, DESCRIBE, PLAY ... 같은 과정으로 재생 요청을 하니 RTSP 서버에서

UDP로 패킷을 전송해주고 있는데 VLC 클라이언트에서 재생이 되기는 하나, 재생 배속이 너무 빠릅니다.

RTSP서버에서는 단순하게 패킷을 UDP로 interval 없이 무조건 Send해주고 있습니다.

혹시나 해서 Send 주기를 1초 정도 주었더니, VLC 클라이언트에서는 현저하게 느리게 재생이 됩니다.

TimeStamp에 문제가 있나싶어 flv에서 뽑아온 TimeStamp값도 확인을 하였고, RTSP 서버에서 생성하는

RTP TimeStamp도 확인을 하였습니다. 값들은 정상적으로 판단이 됩니다.

이 상황에 대해서 RTSP에 관해 지식을 공유해주셨으면 감사하겠습니다.

UDP 패킷을 보내는 interval이 재생속도와 관련이 있을까요? 개인적인 생각은 VLC 클라이언트 내부적으로

들어오는 패킷을 쌓아두고 있다고 생각하면 속도에 영향은 없지 않을까 싶은데...

제 생각이 맞다면, 어느 부분을 의심해 보아야 할까요??


unipro의 이미지

서버의 세션 제어 부분을 검토하고, 컨텐츠의 timestamp를 확인해보십시요.
스트리밍 서버는 스트리밍 세션을 제어(congestion control, flow control 등)를 해야 합니다.
네트워크와 플레이어의 자원이 유한하다는 것을 상기하면 됩니다.
플레이어는 timestamp를 보고 디코딩과 출력의 시간을 결정함으로 혹시 timestamp가 잘못 되었는지도 의심해봐야겠습니다.

내 블로그: http://unipro.tistory.com

sanckldp의 이미지

답변 감사합니다.

정확히 VLC가 어떤식으로 돌아가는지 파악이 어렵네요.
지금 확인해보니, 스트리밍 재생 시 Time이 00:00:00 에서 시작되지 않고 마지막부터 시작이 되네요.
5:14:00 부터 시작해서 점점 - 되면서 화면이 점프하고, 잠시 잘 재생될때는 Time이 + 되는데..
이때 UDP Send 주기를 Sleep(10)을 주니 점프 간격은 줄어들구요... Sleep안주면 점프구간이 크네요..

아...

댓글 달기

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