锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++开源技术 / VLC播放画面延迟改善方法
服务方向
软件开发技术服务
软件开发
办公财务MIS
股票
设备监控
网页信息采集及控制
多媒体
软件开发培训
Java 安卓移动开发
Java Web开发
网站前端开发
VC++
C++游戏开发培训
C#软件
C语言(Linux)
ASP.NET网站开发(C#)
C#软件+ASP.NET网站
SOCKET网络通信开发
COMOLE和ActiveX开发
C++(Linux)
汇编和破解
驱动开发
SkinMagicVC++换肤
流媒体开发
MicroStation二次开发
软件开发在线教育
计算机英语翻译
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883

VLC播放画面延迟改善方法

 Android平台VLC播放RTSP视频延迟问题解决

首先在Android平台上的VLC播放器不像windows平台上UI里提供了设置延迟时间这一项功能,其次也不像Linux平台上可以以命令行的方式来运行,我们也就不能通过设置参数的方式来修改这个延迟时间,怎么办呢,只剩下最后一条路,修改源代码,将延迟时间写死在源码里,有了前面linux平台下设置参数的经验,就可以在源码里面通过grep工具来查找”network-caching”,发现有很多文件包含这个值,下面是搜索的结果

1、设置合适的帧率,在这里使用24帧每秒。一般来说,这个值较大,画质较好。

2、设置合适的缓冲区,服务器接收数据的速率远大于服务器中转的速率,在接收的时候设置一个合适的缓冲区很重要,缓冲区设置过小,服务器来不及转发数据,就会出现丢帧现象。缓冲区设置过大,VLC观看会有较大的延迟。在这里,服务器接收数据的缓冲区最好比转发数据的缓冲区大得多,在这里,设置接收数据缓冲区大小是1500*10 ,转发缓冲区大小为每个packet的大小。

 DatagramSocket RTPsocket;	; //socket to be used to send and receive UDP packets
      DatagramPacket receivedp; //UDP packet containing the video frames
      byte[] buf = new byte[15000]; 

      private Thread t;

      public H263Packetizer() throws IOException {
      super(); 

      }

      public void start() throws IOException {
      RTPsocket= new DatagramSocket(Config.video_port)
      if (!running) {
      running = true;
      t = new Thread(this);
      t.start();
      }
      }
    

public void run() { while(true) { try { receivedp = new DatagramPacket(buf,buf.length); //senddp = new DatagramPacket(buf1,buf1.length); RTPsocket.receive(receivedp); if(receivedp.getData().length>0) { // System.out.println("video length is: "+receivedp.getLength()); // System.out.println("port is"+getRtpSocket().getPort()): buffer=receivedp.getData(); getRtpSocket().upack.setData(buffer); getRtpSocket().send(receivedp.getLength()); } } catch (SocketException e) { // TODO Auto-generated catch block System.out.println("Error : H263 run()"); e.printStackTrace(); } catch (IOException e) e.printStackTrace() } }

通过这些修改,现在VLC播放实时视频,延迟缩小到3秒以内,画质有明显的改善。

接下来,考虑android录制音频实时播放的问题,因为spydroid里的音频编码,VLC没有效果显示。且个人认为,mediaRecorder用于语音通话等方面会有噪音等问题,打算看看speex编码库,参照sipdroid 、android recorder来实现。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内