【问题标题】:How to reduce delay in playing rtsp live video stream in java using vlcj如何使用 vlcj 减少在 java 中播放 rtsp 实时视频流的延迟
【发布时间】:2012-05-29 04:27:03
【问题描述】:

我开发了一个视频聊天应用程序,但是视频显示延迟很高。视频是通过rtsp流式传输的。如何减少播放rtsp流的延迟?

【问题讨论】:

  • 我想我们应该为媒体播放器提供选项,请任何人帮忙..
  • 这可能与缓冲有关,不确定如何直接更改,但您是否尝试过原始 HTTP 而不是 RTSP?另外,延迟有多糟糕?我们是在说几分之一秒、几秒钟、几分钟吗?
  • 如果您的 rtsp 服务器支持,请尝试 udp 多播流。否则,您可以从 vlc 客户端(vlc 命令选项:rtsp-mcast)以 udp 模式强制多播 rtp over rtsp。其他选项是在 tcp 模式下使用 rtp 而不是 rtsp(vlc 命令选项:rtsp-tcp)。
  • 我还 +1 @berry120 使用 vlc 的缓冲功能的建议;例如::file-caching:rtsp-caching
  • 我试过http流媒体,但它无法流媒体,只是播放了我的网络摄像头的输出。所以我改为rtsp。延迟超过5秒,但语音到达另一端2 秒。

标签: video-streaming rtsp videochat vlcj


【解决方案1】:

您使用的是什么视频编解码器?您应该能够使用以下选项将延迟减少到

  1. :live-caching=0 添加到输入处理选项(例如打开网络摄像头时)
  2. 使用编解码器,例如将编解码器更改为 mpeg-4(对于我将 Android 设备作为流接收器的配置,似乎效果更好)
  3. :sout-mux-caching=10(或其他一些低值)添加到流选项中

使用以下行将网络摄像头视频(注意:无音频)流式传输到我的 Android,我能够稍微减少延迟:

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

【讨论】:

    【解决方案2】:

    目前你必须这样配置

    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);
    

    最重要的是network-caching=300。默认为 1000 毫秒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 2011-09-26
      • 2019-03-09
      • 2022-12-19
      相关资源
      最近更新 更多