VLC播放RTSP视频延迟问题
2014-01-03 15:42
253 查看
之前写过一篇关于在Linux平台上编译android平台上VLC播放器源代码的文章,vlc这款播放器非常优秀而且是开源的,它的核心是开源视频编解码库ffmpeg。而且这款播放器还支持RTSP协议,这个主要是用开源的live555来实现的,live555这个库以后还需要认真研习。
前几天用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左右,比修改之前实时性有明显改善,实时性很好,希望这篇文章能给需要相关资料的朋友提供一些帮助,如果有什么问题欢迎给我留言。
阅读(3467) | 评论(6) | 转发(5) |
1
上一篇:Mac OS上编译Mobile VLC for ios
下一篇:C++ 避免隐藏继承而来的名称
相关热门文章
4G内存与CPU,BIOS和操作系统...
《爱情公寓4》将开播 邓家佳称...
《Linux运维之道》 试读...
NFS安装配置及常见问题、/etc/...
Vista初级使用技巧及故障总结...
linux 常见服务端口
【ROOTFS搭建】busybox的httpd...
什么是shell
linux socket的bug??
linux的线程是否受到了保护?...
socket编程开启混杂模式的目的...
C++ 嵌套类是干什么的?...
C++ 单例怎么写?
sizeof 这个操作符都有什么特...
Oracle VM server 如何删除vm ...
给主人留下些什么吧!~~
jason_lee_ying2013-12-31 16:30:53
我修改了android版本的,但是没有达到效果,反而是慢放的效果,请问楼主这是什么原因
回复 | 举报
fuliangcheng2013-06-08 18:24:01
openmultimedia:朋友,我觉得你这篇文章有借鉴的意义,收藏到我个人网站了openmultimedia,http://www.mmihome.net/了,专注多媒体解决方案,经验分享,欢迎交流:http://www.mmihome.net/portal.php?mod=view&aid=248
没有问题,一起学习,多交流回复 | 举报
openmultimedia2013-06-07 23:14:26
朋友,我觉得你这篇文章有借鉴的意义,收藏到我个人网站了openmultimedia,http://www.mmihome.net/了,专注多媒体解决方案,经验分享,欢迎交流:http://www.mmihome.net/portal.php?mod=view&aid=248
回复 | 举报
评论热议
一: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左右,比修改之前实时性有明显改善,实时性很好,希望这篇文章能给需要相关资料的朋友提供一些帮助,如果有什么问题欢迎给我留言。
阅读(3467) | 评论(6) | 转发(5) |
1
上一篇:Mac OS上编译Mobile VLC for ios
下一篇:C++ 避免隐藏继承而来的名称
相关热门文章
4G内存与CPU,BIOS和操作系统...
《爱情公寓4》将开播 邓家佳称...
《Linux运维之道》 试读...
NFS安装配置及常见问题、/etc/...
Vista初级使用技巧及故障总结...
linux 常见服务端口
【ROOTFS搭建】busybox的httpd...
什么是shell
linux socket的bug??
linux的线程是否受到了保护?...
socket编程开启混杂模式的目的...
C++ 嵌套类是干什么的?...
C++ 单例怎么写?
sizeof 这个操作符都有什么特...
Oracle VM server 如何删除vm ...
给主人留下些什么吧!~~
jason_lee_ying2013-12-31 16:30:53
我修改了android版本的,但是没有达到效果,反而是慢放的效果,请问楼主这是什么原因
回复 | 举报
fuliangcheng2013-06-08 18:24:01
openmultimedia:朋友,我觉得你这篇文章有借鉴的意义,收藏到我个人网站了openmultimedia,http://www.mmihome.net/了,专注多媒体解决方案,经验分享,欢迎交流:http://www.mmihome.net/portal.php?mod=view&aid=248
没有问题,一起学习,多交流回复 | 举报
openmultimedia2013-06-07 23:14:26
朋友,我觉得你这篇文章有借鉴的意义,收藏到我个人网站了openmultimedia,http://www.mmihome.net/了,专注多媒体解决方案,经验分享,欢迎交流:http://www.mmihome.net/portal.php?mod=view&aid=248
回复 | 举报
评论热议
相关文章推荐
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题 (转)
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题
- VLC播放RTSP视频延迟问题 (转)
- VLC播放RTSP视频延迟问题
- vlc for android 2016 8月版本 在播放vlc视频时候进入以及退出卡顿1分钟的问题
- 火狐浏览器 谷歌浏览器 安装vlc插件 播放摄像头 rtsp视频流
- 【FFmpeg】ffplay播放rtsp视频流花屏问题
- 解决vlc-android播放http视频退出问题
- [工具]利用EasyRTSPClient工具检查摄像机RTSP流不能播放原因以及排查音视频数据无法播放问题
- Vlc播放rtsp视频
- 【FFmpeg】ffplay播放rtsp视频流花屏问题
- 【FFmpeg】ffplay播放rtsp视频流花屏问题