How to reduce delay in playing rtsp live video stream in java using vlcj
Asked Answered
R

2

6

I have developed a video chatting application,but the video is displayed with high latency.video is streamed over rtsp.how to reduce the delay in playing the rtsp stream?

Rhoea answered 29/5, 2012 at 4:27 Comment(5)
i guess we should provide options to the media player,Any one please help..Rhoea
It may be to do with the buffering, not sure how to change those directly but have you tried just over raw HTTP rather than RTSP? Also, how bad is the latency? Are we talking fractions of a second, seconds, minutes?Photoflash
Try udp multicast streaming if your rtsp server supports it. Otherwise, you can force multicast rtp over rtsp in udp mode from vlc client side (vlc command option :rtsp-mcast). Other option is to use rtp over rtsp in tcp mode (vlc command option :rtsp-tcp).Flare
I also +1 the suggestion by @berry120 to use buffering features of vlc; for example: :file-caching, :rtsp-caching etc.Flare
i have tried http streaming,but it failed to stream and just played the output of my webcam.so i changed to rtsp.the delay is more than 5 seconds ,but voice reach the other end with in 2 seconds.Rhoea
P
2

What video codec are you using? You should be able to reduce latency to <1s using following options:

  1. Add :live-caching=0 to input handling options (e.g. when opening webcam)
  2. Play around with codecs, for example change codec to mpeg-4 (seems to work better for my configuration where I have Android device as stream receiver)
  3. Add :sout-mux-caching=10 (or some other low value) to stream options

With following line used to stream webcam video (notice: no audio) to my Android I was able to slightly reduce latency:

:sout=#transcode{vcodec=mp4v,vb=800,fps=30,scale=0.25,acodec=none}:rtp{sdp=rtsp://:8554/} :sout-keep :sout-mux-caching=10

Planer answered 6/7, 2012 at 15:45 Comment(0)
B
2

Currently you have to configure like this

String[] options = {
                ":file-caching=0",
                ":network-caching=300",
                ":sout = #transcode{vcodec=x264,vb=800,scale=0.25,acodec=none,fps=23}:display :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep"};
mediaPlayer.playMedia(address, options);

The most important is network-caching=300. Defualt is 1000 ms.

Buiron answered 15/12, 2015 at 20:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.