2011-10-11 33 views
7

Tôi có một Máy khách Rtsp đơn giản ... Máy khách gửi Lệnh Rtsp đến Rtsp Server và nhận các gói RTP từ máy chủ.Giữ kết nối Alive Rtsp

Sự cố xảy ra sau một khoảng thời gian (khoảng 3-4 phút) bên thứ ba RTSP Kết nối thả máy chủ với Máy khách RTSP của tôi.

Tôi đã không được thực hiện RTCP ... Tôi lấy gói RTP từ máy chủ rtsp nhưng không gửi bất kỳ GÓI RTCP ...

tôi thực hiện tìm kiếm đơn giản và thấy rằng một số kẻ sử dụng một số lệnh RTSP [như OPTIONS, thiết lập tham số-GET THÔNG SỐ] quá giữ Connections sống giữa RTSP server và Client ... Nhưng trong trường hợp của tôi không hoạt động ...

đây là câu hỏi của tôi:

  1. Cách tốt nhất để giữ kết nối còn sống với máy chủ RTSP là gì?
  2. Tôi có phải triển khai RTCP [gửi gói RTCP tới máy chủ] không? Có thể ngắt kết nối vì tôi không gửi gói RTCP tới máy chủ?

Trả lời

6

Giá trị của thời gian chờ bạn nhận được trong phản hồi SETUP là gì? Bạn có đang sử dụng giá trị này để thực hiện chức năng còn sống không?

Phiên = "Phiên" ":" phiên id [";" "timeout" "=" delta-seconds ]

Thông thường RTSP dựa trên TCP và RTP dựa trên UDP. Vì vậy, lý tưởng cả hai kênh yêu cầu giữ chức năng còn sống. Nếu phiên RTP bị đóng mà không có nghĩa là kết nối RTSP cũng sẽ bị rách trong khi các kênh RTP phải được đóng trên kênh rách RTSP.

1) Cách tốt nhất để duy trì kết nối còn sống với máy chủ RTSP là gì? -> Gửi bất kỳ yêu cầu RTSP theo định kỳ (OPTIONS, SET_PARAMETER hoặc GET_PARAMETER) trước khi nhận được giá trị timeout trong phản hồi SETUP.

2) Tôi có phải triển khai RTCP [gửi gói RTCP tới máy chủ] không? Có thể ngắt kết nối vì tôi không gửi gói RTCP tới máy chủ? -> RFC (RTSP hoặc RTP) không yêu cầu RTCP để giữ cho các kênh RTP còn sống.

+0

3 máy chủ của bên rtsp của tôi không đưa ra thời gian phiên ra giá trị ... Mặc dù tôi gửi OPTIONS lệnh tại mỗi 5 giây nó sẽ rơi xuống kết nối .. – Novalis

+0

Điều đó có nghĩa là máy chủ của bạn đang mong đợi các gói RTCP. – Alam

+0

Có ... Khi tôi gửi các gói RTCP, nó không làm giảm các kết nối ... Nhưng nó "ăn" băng thông axtra .. – Novalis

0

Gửi yêu cầu OPTIONS không hoạt động đối với tôi.

Lệnh chỉ RTSP rằng tôi có thể gửi để giữ kết nối còn sống là GET_PARAMETER

thời gian chờ của tôi là năm 60 và tôi gửi một yêu cầu GET_PARAMETER mỗi 40

trình như một say mê!

(Không, bạn không cần phải RTCP gói đến máy chủ)

+1

Lưu ý rằng "GET_PARAMETER" không được tất cả máy chủ RTSP hỗ trợ. Trước khi gửi, bạn nên kiểm tra câu trả lời cho "OPTIONS" nếu nó chứa thông số "GET_PARAMETER". – Gediminas

Các vấn đề liên quan