IjkPlayer For Android(3)-RTP直播硬解碼支持

IjkPlayer播放器其實是支持RTP直播的睁枕,但是只能用ffmpeg軟解碼不能使用硬解碼把跨。
這里將會從以下幾個方面配置使用
1、UDP RTP/RTMP區(qū)別
2宝鼓、FFMpeg推流
3也搓、IjkPlayer編譯選項
4赏廓、RTP硬解碼支持

一涵紊、RTP/RTMP區(qū)別

RTMP直播是基于TCP協(xié)議,UDP RTP是基于UDP協(xié)議幔摸。也就是說RTMP將會更加可靠栖袋,而UDP RTP延時將會更低。

二抚太、FFMpeg推流

關于HLS推流服務器搭建可以參考網(wǎng)絡直播/點播服務器搭建塘幅。
由于RTP直播推出信息不能直接使用其播放地址,他按照SDP規(guī)范尿贫,我們在推流的時候需要把它存入SDP文件中电媳。客戶端直接訪問保存好的SDP文件即可庆亡。
這里就要在HLS推流服務器中添加SDP文件的訪問(亦可以自己重新搭建服務器訪問SDP文件匾乓,我已經(jīng)搭建了HLS推流服務器,我將在這上面修改)又谋。
打開配置文件

sudo gedit /usr/local/nginx/conf/nginx.conf

添加sdp后綴文件的訪問

...
http {
...
    server {
      ...
      location ~\.sdp$ {
            root /home/ssnwt/src/ssnwt/videos;
        }
    }
}

推流命令

ffmpeg -re -i test.ts -c:v copy -an -f rtp rtp://233.233.233.233:5004 -vn -f rtp rtp://233.233.233.233:5006 -sdp_file test.sdp

參數(shù)說明
-re 按幀率推送拼缝,不然很有可能一下子就把所有的幀都推送了
-i 源文件路徑
-c:v 視頻編碼,copy使用原編碼彰亥,libx264\libx265
-an 提取視頻信息
-vn 提取音頻信息
-sdp_file sdp保存路徑
rtp://233.233.233.233:5004 使用組播咧七,IP地址在224.0.0.0---239.255.255.255之間

三、IjkPlayer編譯選項

需要添加rtp支持,在Ijkplayer的config/module.sh中添加rtp支持

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=sdp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"

四任斋、RTP硬解碼支持

當配置了以上信息之后继阻,就可以使用軟解播放了,但是當播放大分辨率視頻废酷,那就一個卡啊瘟檩,所以必須要支持硬解碼。
不能硬解碼的問題是RTP推流是純數(shù)據(jù)澈蟆,沒有包含sps,pps等信息(視頻寬高墨辛,profile id等數(shù)據(jù)),這些信息都包含在sdp中趴俘,需要發(fā)霉初始化MediaCodec的時候把這些數(shù)據(jù)傳遞給它睹簇。
編輯文件ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c#249

static int recreate_format_l(JNIEnv *env, IJKFF_Pipenode *node)
{
...
if (opaque->codecpar->extradata && opaque->codecpar->extradata_size > 0) {
        if ((opaque->codecpar->codec_id == AV_CODEC_ID_H264 && opaque->codecpar->extradata[0] == 1)
            || (opaque->codecpar->codec_id == AV_CODEC_ID_HEVC && opaque->codecpar->extradata_size > 3
                && (opaque->codecpar->extradata[0] == 1 || opaque->codecpar->extradata[1] == 1))) {
  ...
} else if (opaque->codecpar->codec_id == AV_CODEC_ID_MPEG4) {
  ...
} else {
  // Codec specific data
  SDL_AMediaFormat_setBuffer(opaque->input_aformat, "csd-0", opaque->codecpar->extradata, opaque->codecpar->extradata_size);
  ALOGE("csd-0: naked\n");
}

搞定收工.

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末带膀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伦糯,老刑警劉巖柜某,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗽元,死亡現(xiàn)場離奇詭異喂击,居然都是意外死亡剂癌,警方通過查閱死者的電腦和手機翰绊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門佩谷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人监嗜,你說我怎么就攤上這事谐檀。” “怎么了桐猬?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵刽肠,是天一觀的道長。 經(jīng)常有香客問我音五,道長,這世上最難降的妖魔是什么润绎? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任诞挨,我火速辦了婚禮莉撇,結果婚禮上惶傻,老公的妹妹穿的比我還像新娘。我一直安慰自己涂佃,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布辜荠。 她就那樣靜靜地躺著抓狭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪否过。 梳的紋絲不亂的頭發(fā)上惭蟋,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天告组,我揣著相機與錄音,去河邊找鬼癌佩。 笑死,一個胖子當著我的面吹牛我碟,可吹牛的內容都是我干的酌畜。 我是一名探鬼主播怎囚,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼恳守,長吁一口氣:“原來是場噩夢啊……” “哼贩虾!你這毒婦竟也來了催烘?” 一聲冷哼從身側響起缎罢,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舰始,沒想到半個月后咽袜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡询刹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年凹联,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔽挠。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寞秃,靈堂內的尸體忽然破棺而出偶惠,到底是詐尸還是另有隱情春寿,我是刑警寧澤忽孽,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站厘线,受9級特大地震影響出革,放射性物質發(fā)生泄漏造壮。R本人自食惡果不足惜骂束,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一展箱、第九天 我趴在偏房一處隱蔽的房頂上張望旨枯。 院中可真熱鬧混驰,春花似錦、人聲如沸栖榨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽居夹。三九已至败潦,卻和暖如春准脂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狸膏。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贤旷,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓艾杏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親购桑。 傳聞我的和親對象是個殘疾皇子氏淑,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容