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来实现。

vlc 缓冲大小 设置_VLC播放画面延迟改善方法相关推荐

  1. VLC播放画质延迟改善方法

    前几天写的android录制视频h263编码通过rtp打包,服务器接收数据并转发,VLC通过rtsp协议请求服务器播放画质较差.后来通过以下方法改善了下画质质量以及延迟. 1.设置合适的帧率,在这里使 ...

  2. vlc 缓冲大小 设置_用libvlc 播放指定缓冲区中的视频流

    //vlcTest.cpp : 定义控制台应用程序的入口点.//#include"stdafx.h"#include#include"vlc/vlc.h"#in ...

  3. Markdown更改字体、颜色、大小,设置文字背景色,调整图片大小设置居中,插入表格等方法

    Markdown更改字体.颜色.大小,设置文字背景色,调整图片大小设置居中,插入表格等方法 Markdown 通过简单标记语法,使普通文本内容具有一定格式.但它本身不支持修改字体.字号与颜色等功能的. ...

  4. vlc 安卓版开发_VLC播放器Android版下载

    在经过几年的艰难开发之后,VideoLAN开发团队终于在近日发布了他们广受好评的VLC视频播放器的安卓版本,并正式登陆谷歌Play商店.只要用户使用的是新的ARMv7安卓设备,就可以从谷歌商店下载这款 ...

  5. mysql表缓冲大小可能设置过小_MySQL 5.7 my.cnf配置文件详解

    [client] default-character-set = utf8mb4 [mysql] #开启 tab 补全 #auto-rehash default-character-set = utf ...

  6. oracle设置缓存大小设置多少,【数据库类※从V$DB_CACHE_ADVICE中设置数据缓冲大小※】...

    [数据库类※从V$DB_CACHE_ADVICE中设置数据缓冲大小※]     Oracle 9i引入了一个新的途径来预测数据缓冲cache中附加数据缓存的所带来的好处的多少.V$DB_CACHE_A ...

  7. VLC更改设置,播放本地H264和H265流媒体文件和播放帧率

    VLC更改设置,播放本地H264和H265流媒体文件 步骤1:单击"工具"->"偏好设置".在"偏好设置"对话框的左下角的" ...

  8. VLC 21年,重新审视低延迟直播

    编者按: 作为一个历经了21个年头的播放器,VLC旺盛的生命力使其在今天仍然有着一席之地.但是21年前的定位所带来的与当今主流媒体播放器的差距依然不可小觑.LiveVideoStackCon2022上 ...

  9. android修改屏幕大小设置,android mediaplayer 视频修改视频大小 (屏幕尺寸mediaPlayer =......

    1 主要是通过更改view 的大小来改变视频的大小. 2 在视频初始化时获得视频的高宽都为0 ,这个必须要注意,必须播放后延时 修改view 大小 3 sufaceview 的布局类是 android ...

最新文章

  1. 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案 1
  2. 这样就可以很方便的知道明天的天气了
  3. 第一次运行Spring Boot有感
  4. CMake入门指南-编译教程
  5. [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
  6. 【实战 Ids4】║ 又一个项目迁移完成(MVC)
  7. tkmybatis 子查询_真假童子命符箓道长教你如何查询
  8. 前端基础:学习 ES6 新特性
  9. [20170616]vim 8.0的安装.txt
  10. matlab程序约束条件,求Xij中i,j约束条件下的程序
  11. jzoj3736. 【NOI2014模拟7.11】数学题
  12. Atitit 剪贴板数据类型 DataFlavor 目录 1. HtmlFlavor 1 1.1. allHtmlFlavor 1 1.2. selectionHtmlFlavor 1 1.3. fr
  13. android+gps+定位+缓存,Android GPS和Network定位
  14. 全面拆解携程云原生实践,打造智能弹性的云端酒店直连系统
  15. 网络棋牌游戏用户群体
  16. Flutter Clipboard 粘贴板使用
  17. 百度地图开放平台天气预报查询API
  18. 我从外包公司离职了(一定要看 防坑指南)!
  19. 电脑上的文件经常丢失,怎么办?
  20. 中国仓储业市场运营现状及前景趋势预测报告2021~2028年

热门文章

  1. 360安全浏览器浏览模式调整
  2. chatgpt手机端
  3. dos 执行php,如何在dos命令下执行PHP文件
  4. EL-ADMIN的权限管理
  5. 计算机原理中分散连接,计算机组成原理 课后作业2(第4章)
  6. 工商银行网上银行无法使用的解决方法
  7. 数字化时代 需要利用计算机辅助,浅谈计算机辅助工业设计中的人机交互
  8. mongodb java api chm_mongodb中文手册
  9. Java实现输入学号、姓名、年龄,并对其进行输出
  10. Microsoft Office 2010命令快搜工具粉墨登场