天天看點

IjkPlayer參數設定----常用參數--Server returned 4XX Client Error

ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0);//關閉mediacodec硬解,使用軟解
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);//開啟mediacodec硬解

ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 5);   //丢幀  是在視訊幀處理不過來的時候丢棄一些幀達到同步的效果
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 0);  //設定是否開啟環路過濾: 0開啟,畫面品質高,解碼開銷大,48關閉,畫面品質差點,解碼開銷小
//播放延時的解決方案
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", 1);//設定播放前的探測時間 1,達到首屏秒開效果
//如果是rtsp協定,可以優先用tcp(預設是用udp)
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
ijkMediaPlayer.setOption(1, "analyzemaxduration", 100L);
ijkMediaPlayer.setOption(1, "flush_packets", 1L);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 1);   //需要準備好後自動播放
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "fast", 1);//不額外優化
ijkMediaPlayer.setOption(4, "packet-buffering",  0);  //是否開啟預緩沖,一般直播項目會開啟,達到秒開的效果,不過帶來了播放丢幀卡頓的體驗
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 0);  //自動旋屏
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 0);   //處理分辨率變化
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "max-buffer-size", 0);//最大緩沖大小,機關kb
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "min-frames", 2);   //預設最小幀數2
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,  "max_cached_duration", 3);   //最大緩存時長
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,  "infbuf", 1);   //是否限制輸入緩存數
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "nobuffer");
ijkMediaPlayer.setOption(1, "probesize", 200);  //播放前的探測Size,預設是1M, 改小一點會出畫面更快   
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,"reconnect",5);  //播放重連次數


ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1); //因為項目中多次調用播放器,有網絡視訊,resp,本地視訊,還有wifi上http視訊,是以得清空DNS才能播放WIFI上的視訊  
如果項目無法播放遠端視訊,可以試試這句話 Server returned 4XX Client Error, but not one of 40{0,1,3,4}報這個錯誤也可以試試