ijkplayer支持rtsp實時性

ijkplayer對rtsp的支持是很弱的狡汉,所以需要修改一些代碼;


  1. Config
    首先要開啟rtsp的一些config選項,不知道最新的版本是否已經(jīng)添加,不過我用的是0.7.2還沒加上讹开。
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=sdp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtp"
  1. Code
    很多人一拿到編好的庫,發(fā)現(xiàn)播不了捐名,其實是因為下面這句代碼
    因為av_read_frame讀到了數(shù)據(jù)旦万,到這里又不處理,導(dǎo)致緩沖區(qū)一直不滿镶蹋,
    所以rtsp不要設(shè)置緩沖區(qū);
#if CONFIG_RTSP_DEMUXER || CONFIG_MMSH_PROTOCOL
        if (is->paused &&
                (!strcmp(ic->iformat->name, "rtsp") ||
                 (ic->pb && !strncmp(ffp->input_filename, "mmsh:", 5)))) {
            /* wait 10 ms to avoid trying to get another packet */
            /* XXX: horrible */
            SDL_Delay(10);
            continue;
        }
#endif

把這段代碼注釋了吧成艘!

另外,不設(shè)置緩沖區(qū),在應(yīng)用層添加(以android為例):

// 最大緩沖cache是3s贺归, 有時候網(wǎng)絡(luò)波動淆两,會突然在短時間內(nèi)收到好幾秒的數(shù)據(jù)
// 因此需要播放器丟包,才不會累積延時
// 這個和第三個參數(shù)packet-buffering無關(guān)牧氮。
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max_cached_duration", 3000); 

// 無限制收流
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "infbuf", 1); 

// 設(shè)置無緩沖琼腔,這是播放器的緩沖區(qū)瑰枫,有數(shù)據(jù)就播放
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0); 

// 可選踱葛,有時候tcp模式出畫面更快丹莲,因為rtsp是先udp,不成功再切到tcp的
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");

// 設(shè)置在解析的 url 之前 (這里設(shè)置超時為5秒)
// 如果沒有設(shè)置stimeout尸诽,在解析時(也就是avformat_open_input)把網(wǎng)線拔掉甥材,av_read_frame會阻塞(時間單位是微妙)
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "stimeout", "5000000");

3.講的差不多了,代碼面前性含,了無秘密洲赵,
需要rtsp的優(yōu)化后代碼,請私信我QQ:307509256商蕴。

  1. 前兩天聽群里人說叠萍,抓包看ijk播放rtsp不會發(fā)TEARDOWN,斷開時通過tcp read的timeout绪商,大概也就30s左右吧苛谷,如果是這樣,那確實是ijk對rtsp支持的一個bug格郁,vlc抓包是有發(fā)的腹殿,我沒去查原因,知情者可以討論下例书;

后記:
如果代碼有bug或好的建議锣尉,請不吝賜教;
如果覺得有用决采,并加顆星自沧;

Ai時代,寫作是一種新競爭力树瞭,自勉之~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末暂幼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子移迫,更是在濱河造成了極大的恐慌旺嬉,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厨埋,死亡現(xiàn)場離奇詭異邪媳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荡陷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門雨效,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人废赞,你說我怎么就攤上這事徽龟。” “怎么了唉地?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵据悔,是天一觀的道長传透。 經(jīng)常有香客問我,道長极颓,這世上最難降的妖魔是什么朱盐? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮菠隆,結(jié)果婚禮上兵琳,老公的妹妹穿的比我還像新娘。我一直安慰自己骇径,他們只是感情好躯肌,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著破衔,像睡著了一般羡榴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上运敢,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天校仑,我揣著相機(jī)與錄音,去河邊找鬼传惠。 笑死迄沫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卦方。 我是一名探鬼主播羊瘩,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盼砍!你這毒婦竟也來了尘吗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤浇坐,失蹤者是張志新(化名)和其女友劉穎睬捶,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體近刘,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡擒贸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了觉渴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片介劫。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖案淋,靈堂內(nèi)的尸體忽然破棺而出座韵,到底是詐尸還是另有隱情,我是刑警寧澤踢京,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布誉碴,位于F島的核電站宦棺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翔烁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一旨涝、第九天 我趴在偏房一處隱蔽的房頂上張望蹬屹。 院中可真熱鬧,春花似錦白华、人聲如沸慨默。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厦取。三九已至,卻和暖如春管搪,著一層夾襖步出監(jiān)牢的瞬間虾攻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工更鲁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留霎箍,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓澡为,卻偏偏與公主長得像漂坏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子媒至,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容