直播軟體開發關於Android、iOS中的影片採集步驟
很多人對直播軟體開發還是抱有想法的,但是在這個資本冷靜的市場下,直播平臺該怎麼玩,在直播軟體開發過程中哪些功能是必須具備的,這都是值得關注的話題。今天我們給大家分享一份詳細的直播軟體開發關於Android 、iOS音影片採集步驟講解。
手機直播軟體開發過程中,Android 音訊幀採集步驟:
與Camera 的配置相比,AudioRecord 簡單了很多,在例項化 AudioRecord 時需要指定採集源,筆者設定為了麥克風,然後指定取樣率,筆者採用相容性非常強的 44100Hz ,也就是每秒採集 44100 次,接著是配置音訊通道,由於筆者對音訊要求不是很高所以採用了 AudioFormat.CHANNEL_IN_MONO 代表單通道,當然也是支援雙通道立體聲採集的,只需傳入 AudioFormat.CHANNEL_IN_STEREO 即可,然後再設定取樣的資料格式,也就是每個取樣值所佔空間的大小,筆者選擇了 16位 也就是 2 byte ,最後再配置上緩衝器大小,這個值一般不是寫死的可以透過 AudioRecord.getMinBufferSize 來獲取一個最小值。
接著只需要呼叫AudioRecord.read 即可獲取採集到的 PCM 影片。
手機直播軟體開發過程中,Android 影片幀採集步驟:
對於Android直播軟體開發者來說Camera 這個類並不陌生,我們只需要一些簡單配置以後就可以配合 SurfaceView 來瀏覽攝像頭所捕捉到的畫面,我們這次的部分配置也許與往常的不同,因為我們需要自己處理每一幀影片,比如需要設定一個取樣格式: Camera.Parameters.setPreviewFormat,點進原始碼你會發現裡面所支援的格式有很多,但是不幸的是 5.0 以前只支援 NV12 與 YV12 ,關於這兩種取樣模式等下會細講。除此之外你還需新增緩衝區來存放臨時的影片資料,並設定取樣回撥,如:
這裡的buffSize 大小與取樣格式息息相關,不過 NV12 與 YV12 的每幀大小倒是剛好一樣大的,都是3/2*H*W,在 TODO 的位置我們就可以對影片進行編碼與或者其他操作,但是千萬別直接編碼或者操作,很關鍵!你可以使用一個佇列來儲存資料,然後開啟一個執行緒去讀這個佇列裡面的資料,然後進行操作,因為你直接操作很可能阻塞這個執行緒,這個執行緒是主執行緒,雖然一般不會導致 ANR ,但是很可能造成丟幀,比如你採集的幀率是 30fps ,採集到第一幀的時候你阻塞了一會兒,那麼很可能第二第三幀就會丟,然後你處理第四幀,第五第六幀就會丟,最後播放影片的時候就會像按了快進一樣,並且處理完後我們需要及時把 buffer 歸還給 Camera。
手機直播軟體開發過程中,iOS音影片採集的步驟
1、建立並初始化 AVCaptureSession。
2、建立並初始化 AVCaptureVideoDataOutput。
3、設定 AVCaptureVideoDataOutput的videoSettings,videoSettings 中的 Key and value 包含了輸出影像與影片格式定義。
4、呼叫 AVCaptureVideoDataOutput 物件的 setSampleBufferDelegate 方法,設定取樣資料緩衝區的代理。這樣當從輸入裝置採集到資料後,系統就會自動呼叫AVCaptureVideoDataOutputSampleBufferDelegate 協議中的 captureOutput 方法,從而獲取到影片資料。
5、將 AVCaptureVideoDataOutput 物件新增到 AVCaptureSession物件中。
6、根據影片型別 AVMediaTypeVideo,建立 AVCaptureDevice 物件。(可以建立影片裝置也可以建立音訊裝置)。
7、以 AVCaptureDevice 為引數,建立 AVCaptureDeviceInput 物件。
8、將 AVCaptureDeviceInput 對像新增到 AVCaptureSession 物件中。
9、呼叫 AVCaptureSession 物件的 setSessionPreset 方法進行屬性設定。如 設定 quality level, bitrate, 或其它 output 的 settings。
10、呼叫 Output 物件的 connectionWithMediaType 方法,建立 Input與Output之前的連線。
11、呼叫 AVCaptureSession 物件的 startRunning() 方法,開始影片採集。12、呼叫 AVCaptureSession 對像的 stopRunning() 方法,停止影片採集。
以上音影片採集步驟主要是直播軟體開發過程中app開發基本功能展示,除此之外還會包好管理後臺功能。其實,直播平臺如何搭建這個問題並不困難,大多數服務商會免費提供直播平臺搭建部署服務,如果是自己搭建網上也有很多參考教程,對於後期運營而言直播軟體開發時的功能確立反而更為重要。
宣告:本篇文章為雲豹kj的小編原創文章,轉載請帶連結並表明名稱。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978278/viewspace-2711059/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分享淘寶採集商家電話軟體的步驟
- bugu直播原始碼直播軟體搭建關鍵步驟與要點!原始碼
- 影片直播軟體開發:Android客戶端接入谷歌支付的實現流程Android客戶端谷歌
- 有什麼批次採集影片素材的軟體?大佬都是這樣採集素材的
- 關於iOS開發中copy的使用iOS
- iOS - 直播系列一:視訊採集iOS
- 關於直播教學系統開發中,課件直播所需的硬體支援
- 原生(iOS)與Flutter混合開發步驟iOSFlutter
- 直播軟體app開發,Android Studio中的介面上下滑動APPAndroid
- 手機直播軟體系統搭建原始碼,聚合採集器採集平臺介面!原始碼
- 基於以太坊的Token開發步驟
- 自媒體素材採集平臺,採集影片文章素材
- iOS framework的具體合成步驟iOSFramework
- 小白福利篇,直播APP開發的6條基本步驟APP
- 8、T5L基於DGUS軟體開發一個前端顯示Demo的基本開發步驟前端
- 【經驗】學習android開發的步驟Android
- 區塊鏈直銷軟體開發搭建步驟詳解區塊鏈
- 直播系統定製開發的步驟分享,如何進行直播系統定製開發
- 開發直播app 軟體時iOS端廣告功能設定APPiOS
- win10剪輯影片的軟體怎麼使用_win10自帶影片剪輯軟體的使用步驟Win10
- 軟體功能測試的步驟
- Android遊戲開發設計步驟Android遊戲開發
- 批次採集下載微視裡的影片,什麼軟體實用?
- 直播軟體開發完成後音影片內容是如何“走出去的”?
- 開發直播軟體需要走的流程
- 直播間原始碼在開發前期必須做的工作及開發步驟原始碼
- Java開發中的工作流程和步驟Java
- LNMPPHP軟體安裝步驟LNMPPHP
- 高速影片採集卡設計資料儲存:620-基於PCIe的高速影片採集卡
- 軟體開發丨關於軟體重構的靈魂四問
- 軟體開發中關注習慣的力量
- 基於開源軟體、採用創新模式發展國產基礎軟體模式
- 分享個人用於開發相關的軟體/工具
- 淘寶新店採集軟體當天新開店鋪採集器 新店抓取工具
- 直播系統開發中關於開發環境你瞭解多少?開發環境
- webrtc開發中,音訊實時對講採集的問題(ios mic mute)Web音訊iOS
- 安卓開發中RecycleView簡單使用步驟安卓View
- 軟體產品安全測試,保障軟體產品質量的關鍵性步驟