美文网首页首页投稿
IJKMediaFramework集成支持RTPS和HTTPS

IJKMediaFramework集成支持RTPS和HTTPS

作者: 肆意二货 | 来源:发表于2018-10-23 09:39 被阅读67次

    目的

    因为项目中用到了IJKMediaFramework这个直播的框架。不小心发现无法播放RTPS的流地址,所以网上各种资料,各种尝试。

    本文不会有很长的内容和步骤的介绍,具体步骤我给出参考的地址,也是一位简书的小伙伴写的,已经很详细了。这里我就提出如何把RTPS和HTTPS都支持,整合在一起。

    关键步骤

    1.支持HTTPS

    在模块文件中加入此行代码。我的编译是在module-lite.sh这个文件。

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

    2.支持RTPS

    1.修改模块文件

    首先将模块文件(module-lite.sh)中的此行代码修改成可使用的状态。

    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的拉下来的代码。但是应该差别不大。我的路径是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;
    }
    

    结尾

    首先给出我参考的步骤链接,除了文中提出的支持RTPS部分加入,其它可按照此文步骤去操作。并且小伙伴不用担心不支持armv7会不会有什么不好的影响。我的项目已经顺利上线,只是不支持iPhone5s之前的机器也就是必须要64位的手机。

    最后再唠叨一下,如果你有好的想法或者好的建议都可以给我留言,可能我回复的没那么及时,但是我看到了一定会给你回复的。我希望可以和你们一起进步。

    相关文章

      网友评论

        本文标题:IJKMediaFramework集成支持RTPS和HTTPS

        本文链接:https://www.haomeiwen.com/subject/iyrozftx.html