ijkPlayer 集成


代碼地址如下:
http://www.demodashi.com/demo/11957.html

概述
ijkplayer 是一款做視頻直播的框架,基於FFmpeg,支持Android和iOS。這里介紹一下iOS中集成ijkplayer

一、FFmpeg

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化為流的開源計算機程序。它包括了領先的音/視頻編碼庫libavcodec等。

libavformat:用於各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結構
和讀取音視頻幀等功能;

libavcodec:用於各種類型聲音/圖像編解碼;

libavutil:包含一些公共的工具函數;

libswscale:用於視頻場景比例縮放、色彩映射轉換;

libpostproc:用於后期效果處理;

ffmpeg:該項目提供的一個工具,可用於格式轉換、解碼或電視卡即時編碼等;

ffsever:一個 HTTP 多媒體即時廣播串流服務器;

ffplay:是一個簡單的播放器,使用ffmpeg 庫解析和解碼,通過SDL顯示;

支持的編碼

源自FFmpeg項目組的兩個視頻編碼:

Snow

FFV1

支持的格式

ASF、AVI、BFI[7]、IFF[8]、RL2[9]、FLV、MXF

Material eXchange Format, SMPTE 377M

Matroska、Maxis XA[10]、MSN Webcam stream[11]

MPEG transport stream、TXD[6]、OMA[12]

GXF,General eXchange Format, SMPTE 360M

mov,mp4,m4a,3gp,

支持的協議

HTTP RTP RTSP RealMedia RTSP/RDT

TCP UDP Gopher RTMP

RTMPT, RTMPE, RTMPTE, RTMPS (via librtmp)

SDP

MMS over TCP

二、下載ijkplayer

下載完成后解壓, 解壓后文件夾內部目錄如下圖:
ijkplayer.png

三、編譯

其實這里主要是編譯FFmpeg,因為他是一個C語言的跨平台庫,需要sh腳本來進行編譯

  1. 打開終端, cd 到jkplayer-master文件夾中, 也就是下載完解壓后的文件夾, 如下圖:1.png
  2. 執行命令行./init-ios.sh, 這一步是去下載 ffmpeg 的, 時間會久一點, 耐心等一下.如下圖:2.png
  3. cd 到ios目錄中
  4. 執行./compile-ffmpeg.sh clean3.png
  5. 執行./compile-ffmpeg.sh all進行FFmpeg的編譯,時間較久4.png

四、打包IJKMediaFramework.framework框架

其實集成ijkplayer有兩種方法,一種是按照Demo中的導入IJKMediaPlayer.xcodeproj,此方法不是很推薦

下面主要說另一種把 ijkplayer 打包成framework導入工程中使用.
首先打開工程IJKMediaPlayer.xcodeproj,IJKMediaPlayer.xcodeproj

選擇IJKMediaFramework點擊EditScheme

選擇release

設置好 scheme 后, 分別選擇真機和模擬器進行編譯, 編譯完成后, 進入 Finder,

下面開始合並真機和模擬器版本的 framework, 注意不要合並錯了, 合並的是這個文件, 如下圖:

打開終端, 進行合並, 命令行具體格式為:
lipo -create 真機版本路徑 模擬器版本路徑 -output 合並后的文件路徑

合並后如下圖

用合並后的IJKMediaFramework把原來的IJKMediaFramework替換掉

五、在iOS項目中集成ijkplayer

新建工程, 導入合並后的IJKMediaFramework.framework以及相關依賴框架以及相關依賴框架,如下圖:
5.png

導入框架后在ViewController.m中進行buid,如果成功,說明集成成功。然后可以在控制器中寫一個Demo測試Snip20170831_10.png
可以是mp4格式,也可以是m3u8,rtmp,hls等流媒體

六、效果圖

QQ20171116-1510342x.pngijkPlayer 集成

代碼地址如下:
http://www.demodashi.com/demo/11957.html

注:本文著作權歸作者,由demo大師代發,拒絕轉載,轉載需要作者授權


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM