今天記錄一下 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