美文网首页
iOS IJKPlayer 支持播放 RTSP

iOS IJKPlayer 支持播放 RTSP

作者: 今天_现在 | 来源:发表于2017-09-01 10:25 被阅读492次

    今天记录一下 ijk ,ijk 默认不支持播放 RTSP 的,下面就说一下如何配置 ijk 让其支持播放 RTSP 

    1. 在桌面创建一个文件夹,打开终端 cd (文件夹路径)

    2.输入命令: git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

    3.输入命令:cd ijkplayer-ios

    4.输入命令:git checkout-Blatest k0.8.0

    5. 修改module-lite.sh文件:打开该文件,找到

    export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtp"  修改成后面的就支持rtsp协议了  export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp" 修改之后在下面添加一行 export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp" (打开rtsp音视频分离器),然后保存。

    6.输入命令: cd /Users/xue/Downloads/RTSP/ijkplayer-ios/config

    7.输入命令:rmmodule.sh//删除原来的

    8.输入命令:ln -smodule-lite.shmodule.sh //用修改过的替换

    9.修改源文件  ijkplayer-ios/ijkmedia/ijkplayer/ff_ffplay.c 中搜索 packet_queue_get_or_buffering  找到一下代码:

    要修改的代码

    找到上面的代码之后修改成一下的代码:

    static int packet_queue_get_or_buffering(FFPlayer*ffp, PacketQueue*q, AVPacket*pkt,int*serial,intfinished){

    while(1) {

    intnew_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;

    }elseif(new_packet ==0) {

    if(!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_free_packet(pkt);continue;

    }else

    break;

    }return 1;

    }

    10. 编译  输入命令:./init-ios.sh

    11.输入命令:cd ios

    12.输入命令:./compile-ffmpeg.sh clean

    13.输入命令:./compile-ffmpeg.shall

    14.打开 ijkplayer-ios -> ios -> IJKMediaPlayer 工程编译模拟器和真机,分别编译一遍。 然后 show in finder IJKMediaFramework.framework 找到两个库的位置,在进行下面的合并

    15.将编译出来的库进行合并  bogon:Products zxwzsw$ lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework   执行之后得到想要的framework

    16.把生成的ijk库放到你要使用的工程中,并添加一下的库:

    17.接下来就是使用了 

    使用如上

    以上参考:http://blog.csdn.net/ethan_xue/article/details/74001475?utm_source=itdadao&utm_medium=referral


    最后说一下 ijk 不支持 rtsp 链接里面带账户密码的,比如海康威视摄像头,如果是要播放摄像头视频流的话可以使用 FFmpeg框架、VLC框架,VLC框架可以使用cocopods 比较方便点。VLC框架可以看我的文章 “VLC视频播放”。

    相关文章

      网友评论

          本文标题:iOS IJKPlayer 支持播放 RTSP

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