iOS IJKPlayer 支持播放 RTSP

今天记录一下 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  找到一下代码:

iOS IJKPlayer 支持播放 RTSP_第1张图片
要修改的代码

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

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库放到你要使用的工程中,并添加一下的库:

iOS IJKPlayer 支持播放 RTSP_第2张图片

17.接下来就是使用了 

iOS IJKPlayer 支持播放 RTSP_第3张图片
使用如上

以上参考: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)