之前写过一篇关于在Linux平台上编译android平台上VLC播放器源代码的文章,vlc这款播放器非常优秀而且是开源的,它的核心是开源视频编解码库ffmpeg。而且这款播放器还支持RTSP协议,这个主要是用开源的live555来实现的,live555这个库以后还需要认真研习。

一:PC端(Windows平台)VLC播放RTSP视频延迟问题解决

前几天用PC平台上的VLC播放RTSP流媒体时延迟时间较长,存在1s左右的延迟,效果不是很好,后来查了资料,发现这个延迟时间是可以修改的。

找到工具->首选项,然后参数设置左下角选择“全部”,左边选择 “输入编解码”->“网络缓存”选项,可以根据具体需要加以修改,具体见下图不过这个值不要太小,否则缓存太小,播放视频的过程中会很卡

如果网络环境较好,300ms以内效果很好,实时性较好。

二:PC端(Linux平台)VLC播放RTSP视频延迟问题解决

这里我的测试平台是ubuntu,linux平台上的vlc可以以命令行的方式来运行,而命令行是可以带参数的,我们只需要在参数里面指定这个延迟时间就可以了,下面是具体的命令行形式,大家可以根据各自需要加以调整

vlc rtsp://192.168.1.1:8556/test.avi  --newwork-caching=300

rtsp的地址要根据自己需要播放的视频地址修改,网络延迟时间也可以根据需要修改,这个值越小,实时性越好,当然太小了播放会很卡,或者设置的值失效,一般建议在100-300之间

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

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

vlc/src/libvlc-module.c: add_integer( "network-caching", CLOCK_FREQ / 1000,

vlc/NEWS: - --network-caching specifies caching for network resources,

vlc/modules/gui/macosx/simple_prefs.m: TestCaC("network-caching", 10/3);

vlc/modules/gui/macosx/simple_prefs.m: CaC("network-caching", 10/3);

vlc/modules/gui/qt4/components/open_panels.cpp: emit methodChanged( qfu( "network-caching" ) );

vlc/modules/gui/qt4/components/simple_preferences.cpp: TestCaC( "network-caching", 10/3 );

vlc/modules/gui/qt4/components/simple_preferences.cpp: CaC( "network-caching", 10/3 );

vlc/modules/access/file.c: *pi_64 = var_InheritInteger (p_access, "network-caching");

vlc/modules/access/rtp/rtp.c: *v = INT64_C(1000) * var_InheritInteger (demux, "network-caching");

vlc/modules/access/ftp.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/live555.cpp: * var_InheritInteger( p_demux, "network-caching" );

vlc/modules/access/http.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/sftp.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/udp.c: * var_InheritInteger(p_access, "network-caching");

vlc/modules/access/smb.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/tcp.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/rtsp/access.c: * var_InheritInteger(p_access, "network-caching");

vlc/modules/access/mms/mmsh.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/mms/mmstu.c: * var_InheritInteger( p_access, "network-caching" );

vlc/modules/access/vnc.c: * var_InheritInteger( p_demux, "network-caching" );

vlc-android/jni/libvlcjni.c: libvlc_media_add_option(p_md, ":network-caching=1500");

对这些文件的代码进行了一些分析,最后发现目标在vlc/src/libvlc-module.c这个文件,于是修改这个文件的1832行,如下图所示,将CLOCK_FREQ / 1000改为 CLOCK_FREQ / 3000,这里可以根据各自的需要加以修改,分母越大,这个值就越小,实时性也就越好,当然跟前面所说一样,不能太小

1832 //add_integer( "network-caching", CLOCK_FREQ / 1000,

1833 // NETWORK_CACHING_TEXT, NETWORK_CACHING_LONGTEXT, true )

1834 add_integer( "network-caching", CLOCK_FREQ / 3000,

1835 NETWORK_CACHING_TEXT, NETWORK_CACHING_LONGTEXT, true )

最后再编译运行发现延迟时间大概在200ms左右,比修改之前实时性有明显改善,实时性很好,希望这篇文章能给需要相关资料的朋友提供一些帮助。

android vlc rtsp卡顿,VLC播放器 RTSP 卡顿解决相关推荐

  1. Android 直播 直播测试拉流播放器和地址

    Android 直播 直播测试拉流播放器和地址 直播拉流播放器 直播拉流测试地址 测试类抖音视频 直播拉流播放器 推荐VLC 直播拉流测试地址 香港财经 *****:rtmp://202.69.69. ...

  2. Android在应用中打开系统播放器

    在Android应用中嵌入系统播放器可以使用Mediaplayer实例完成,但是如何打开系统播放器呢?(就是例如浏览网页,遇到一个rtsp链接,点击之后直接启动播放器) 首先由于我们的内容在网络上,我 ...

  3. 一个基于Android开发的简单的音乐播放器

    一个基于Android开发的简单的音乐播放器 记得当时老师让我们写因为播放器时,脑子一头雾水,网上杂七杂八的资料也很少有用,因此索性就自己写一篇,希望对有缘人有用. 因为有好多人问我要源码,所以附上g ...

  4. android 基于ijkplayer项目进行的播放器

    jjdxm_ijkplayer 项目地址:jjdxm_ijkplayer 简介:基于 ijkplayer 简单的 UI 界面 当前项目是基于 ijkplayer 项目进行的播放器界面 UI 封装. 是 ...

  5. Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)

    Android应用--简.美音乐播放器获取专辑图片(自定义列表适配器) 2013年7月3日简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词 ...

  6. Android应用--简、美音乐播放器增加音量控制

    Android应用--简.美音乐播放器增加音量控制 2013年6月26日简.美音乐播放器继续完善中.. 题外话:上一篇博客是在6月11号发的,那篇博客似乎有点问题,可能是因为代码结构有点乱的原因,很难 ...

  7. Android应用--简、美音乐播放器原型放送(作者:小巫)

    Android应用--简.美音乐播放器原型放送 2013年7月5日简.美音乐播放器开发 前言:小巫的简.美音乐播放器从5月7号开始开发,之前以为时间很充足,也没有估量整个软件的需求,如果简单实现基本的 ...

  8. YUVPlayer: 基于Android平台的YUV视频原始数据播放器

    基于Android平台的YUV视频原始数据播放器 编译环境 FFmpeg版本: 4.2.2 NDK版本:r17c 运行环境 x86(模拟器) arm64-v8a(64位手机) 功能点 从文件中读取YU ...

  9. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决

    1.概述 在11.0的rom定制化开发中,在点击系统自带的播放器以后,播放音乐的时候,在最近任务栏recents列表中,点击全部清除,发现音乐播放器还在播放音乐,导致出现bug,完整的 解决方法,肯定 ...

  10. Android学习之路4——音乐播放器后台播放

    Android学习之路4--音乐播放器后台播放 一.实验题目 简单音乐播放器 二.实现内容 实现一个简单的播放器,要求功能有: 播放.暂停.停止.退出功能,按停止键会重置封面转角,进度条和播放按钮:按 ...

最新文章

  1. cad表示计算机辅助,CAD计算机辅助设计之快捷键篇~( ̄▽ ̄)
  2. 一起谈.NET技术,.NET并行(多核)编程系列之七 共享数据问题和解决概述
  3. 根据 dba_errors 制定 数据库报警邮件
  4. 阿里云对象存储OSS支持版本管理特性
  5. QQuickWidget + QML编程实现酷炫动态动画效果
  6. axios 取消请求_封装 axios 取消重复请求
  7. linux下的screen工具配置(针对 string escape)
  8. sony android 计算器,NeoCal 全能计算器 V2.0.2
  9. FFmpeg 以及帧率的解释
  10. 安装使用TortoiseSVN + google code
  11. Matlab似然比检验函数,似然比检验 LRT
  12. 好物分享 | 也许是最好用的文件/目录对比软件
  13. 关于科傻软件的使用感受
  14. 组策略应用:软件分配及软件发布
  15. 关于组织2021-2022全国青少年电子信息 智能创新大赛西北赛区(陕西)复赛的通知
  16. 设计模式回顾——适配器模式(C++)
  17. 储能系统拆解及储能芯片(4) - 两轮电动车BMS电路分析
  18. 在深圳java三年经验薪资多少正常,使用/教程/实例
  19. window正版验证的秘密
  20. cl.licl.me index.php,纯铁在750℃熔融LiCl-Li2O中的腐蚀行为

热门文章

  1. 云南大学计算机学科评估排名,全国第四轮学科评估结果公布 云南大学2个学科获评A类...
  2. 职场人都在用的办公软件,你用过哪几种呢?
  3. 迪杰斯特拉算法c语言6,C语言迪杰斯特拉实现最短路径算法.doc
  4. QuickStart\6.Mspaint
  5. 莲花——安妮宝贝§2006-03-01出版
  6. 决定上限的不是能力,而是格局--《格局》
  7. 【转载】Windows/Office“神key的来源”(附win8神key)
  8. Mac下 ADT 找不到手机设备
  9. java8的4大核心函数式接口
  10. 个人或企业开发一款app需要多少钱?