RTMP推流組件EasyRTMP實現手機直播推送、屏幕推送及錄像功能時錄像功能時如何實現的


EasyRTMP是結合了多種音視頻緩存及網絡技術的一個rtmp直播推流端,包括:圓形緩沖區(circular buffer)、智能丟幀、自動重連、rtmp協議等多種技術,能夠非常有效地適應各種平台(Windows、Linux、ARM、Android、iOS),各種網絡環境(有線、wifi、4G),以及各種情況下的直播恢復(服務器重啟、網絡重啟、硬件設備重啟)。

EasyRTMP架構1.png

調用方法

EasyRTMP_File:EasyRTMP做為RTMP推送端,將本地文件推送到RTMP流媒體服務器;

EasyRTMP_RTSP:將RTSP/RTP數據獲取到本地,再通過EasyRTMP推送到RTMP服務器;

EasyRTMP-Android:Android安卓RTMP直播推流,采集安卓手機前/后攝像頭、麥克風音視頻推送直播;項目地址:https://github.com/EasyDSS/EasyRTMP-Android

EasyRTMP-iOS:iOS蘋果RTMP直播推流,采集蘋果手機前/后攝像頭、麥克風音視頻推送直播;項目地址

提出問題

EasyRTMP-iOS錄像的實現方式是什么?

分析問題

iOS在實現視頻錄制功能的時,如果單純的使用AVCaptureMovieFileOutput將錄制的視頻文件進行輸出,則會導致錄制的視頻文件太過於大。而使用AVAssetWriter 實現高分辨率錄制視頻,生成低體積的視頻文件。

解決問題

AVAssetWriter實現視頻錄制的流程如下:
1、初始化AVAssetWriter,需要輸入文件在沙盒中的路徑,並設置視頻文件的大小已屬性:

21.png

2、將AVCaptureAudioDataOutputSampleBufferDelegate的回調中獲取到的視頻和音頻的原始數據寫入到文件中:

寫入視頻數據:

22.png

寫入音頻數據:

23.png

3、同時可以將錄像的進度回調出去:

24.png

4、最后完成視頻的錄制:

25.png


免責聲明!

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



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