IJKMediaFramework集成支持RTPS和HTTPS

目的

因?yàn)轫?xiàng)目中用到了IJKMediaFramework這個(gè)直播的框架。不小心發(fā)現(xiàn)無法播放RTPS的流地址,所以網(wǎng)上各種資料,各種嘗試。

本文不會(huì)有很長的內(nèi)容和步驟的介紹,具體步驟我給出參考的地址,也是一位簡書的小伙伴寫的,已經(jīng)很詳細(xì)了。這里我就提出如何把RTPS和HTTPS都支持,整合在一起。

關(guān)鍵步驟

1.支持HTTPS

在模塊文件中加入此行代碼。我的編譯是在module-lite.sh這個(gè)文件。

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"

2.支持RTPS

1.修改模塊文件

首先將模塊文件(module-lite.sh)中的此行代碼修改成可使用的狀態(tài)。

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"

接著在下面添加這行代碼

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"
2.修改ff_ffplay.c文件

我是直接下載的zip包,而不是走git的拉下來的代碼。但是應(yīng)該差別不大。我的路徑是ijkplayer-ios/ijkplayer/ff_ffplay.c。將文件中的方法替換成下面的方法即可。

static int packet_queue_get_or_buffering(FFPlayer *ffp, PacketQueue *q, AVPacket *pkt, int *serial, int *finished){
    if (!ffp->packet_buffering)
        return packet_queue_get(q, pkt, 1, serial);
    while (1) {
        int new_packet = packet_queue_get(q, pkt, 1, serial);
        if (new_packet < 0){
            new_packet = packet_queue_get(q, pkt, 0, serial);
            if(new_packet < 0)
                return -1;
        }else if (new_packet == 0) {
            if (q->is_buffer_indicator && !*finished)
                ffp_toggle_buffering(ffp, 1);
            new_packet = packet_queue_get(q, pkt, 1, serial);
            if (new_packet < 0)
                return -1;
        }
        if (*finished == *serial) {
            av_packet_unref(pkt);
            continue;
        }else
            break;
    }
    return 1;
}

結(jié)尾

首先給出我參考的步驟鏈接,除了文中提出的支持RTPS部分加入,其它可按照此文步驟去操作。并且小伙伴不用擔(dān)心不支持armv7會(huì)不會(huì)有什么不好的影響。我的項(xiàng)目已經(jīng)順利上線,只是不支持iPhone5s之前的機(jī)器也就是必須要64位的手機(jī)。

最后再嘮叨一下,如果你有好的想法或者好的建議都可以給我留言,可能我回復(fù)的沒那么及時(shí),但是我看到了一定會(huì)給你回復(fù)的。我希望可以和你們一起進(jìn)步。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容