主页 > 原创 | 学习笔记 > Android libvlc播放延时优化

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();

前添加

    p_sys->ic->probesize = 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 优化 延时

发表评论

邮箱地址不会被公开。 必填项已用*标注