Android libvlc播放延时优化
2015 年 10 月 20 日 Android libvlc播放延时优化无评论
Android使用libvlc播放 rtmp 视频流,开始播放出现log “avformat demux: detected format: flv”到界面播放会有4-5s的打开延时,经过分析发现延时发生在 “error = avformat_find_stream_info( p_sys->ic, options );”
参考这里
优化方法:
产生的延时主要是因为预读取的流太多,等待的时间较长。通过修改 “probesize” 和 “max_analyze_duration” 来减少打开时的延时。
修改文件 “vlc/modules/demux/avformat/demux.c”
在
vlc_avcodec_lock(); /* avformat calls avcodec behind our back!!! */
error = avformat_find_stream_info( p_sys->ic, options );
/* FIXME: what if nb_streams change after that call? */
vlc_avcodec_unlock();
error = avformat_find_stream_info( p_sys->ic, options );
/* FIXME: what if nb_streams change after that call? */
vlc_avcodec_unlock();
前添加
p_sys->ic->probesize = 32;
p_sys->ic->max_analyze_duration = 32;
p_sys->ic->max_analyze_duration = 32;
之后运行编译
./compile-libvlc.sh
将Android项目中的 “libvlcjni.so” 替换为新生成的 “./libvlc/jni/libs/armeabi-v7a/libvlcjni.so” 重新编译apk测试。
Tags: android jni latency libvlc 优化 延时
发表评论