【iOS開發】--視頻直播之原理篇二(處理)

原文鏈接:http://www.lxweimin.com/p/ddb640ac4fec
作者:七牛云
視頻或者音頻完成采集之后得到原始數據,為了增強一些現場效果或者加上一些額外的效果,我們一般會在將其編碼壓縮前進行處理,比如打上時間戳或者公司 Logo 的水印,祛斑美顏和聲音混淆等處理。在主播和觀眾連麥場景中,主播需要和某個或者多個觀眾進行對話,并將對話結果實時分享給其他所有觀眾,連麥的處理也有部分工作在推流端完成。

常見視頻處理功能

1. 美顏

都說「80% 的主播沒有美顏根本沒法看」,美顏是直播產品中最常見的功能之一。最近準備在香港上市的美圖公司的主打產品就是美顏相機和美拍,有媒體戲稱其會沖擊化妝品行業,其實就是美顏的效果的功勞,讓美女主播們不化妝也可以自信的直播,而美顏相機的用戶則可以拍出「更好的自己」。

美顏的主要原理是通過「磨皮+美白」來達到整體美顏的效果。磨皮的技術術語是「去噪」,也即對圖像中的噪點進行去除或者模糊化處理,常見的去噪算法有均值模糊、高斯模糊和中值濾波等。當然, 由于臉部的每個部位不盡相同,臉上的雀斑可能呈現出眼睛黑點的樣子,對整張圖像進行「去噪」處理的時候不需要將眼睛也去掉,因此這個環節中也涉及到人臉和皮膚檢測技術。

七牛直播云提供的 iOS 和 Android 推流 SDK 中內置了美顏功能,你可以根據自己的需要選擇開關美顏功能,并且能夠自由調節包括美顏,美白,紅潤等在內的參數。其中 iOS 端 SDK PLCameraStreamingKit 的參數設置如下:

1)按照默認參數開啟或關閉美顏:
-(void)setBeautifyModeOn:(BOOL)beautifyModeOn;

2)設置美顏程度,范圍為 0 ~ 1:
-(void)setBeautify:(CGFloat)beautify;

3)設置美白程度,范圍為 0 ~ 1
-(void)setWhiten:(CGFloat)whiten;

4)設置紅潤程度,范圍為 0 ~ 1
-(void)setRedden:(CGFloat)redden;

2. 視頻水印

水印是圖片和視頻內容中常見的功能之一,它可用于簡單是版權保護,或者進行廣告設置。處于監管的需求,國家相關部門也規定視頻直播過程中必須打上水印,同時直播的視頻必須錄制存儲下來保存一定的時間,并在錄制的視頻上打上水印。

視頻水印包括播放器水印和視頻內嵌水印兩種方式可供選擇,對于播放器水印來說,如果沒有有效的防盜措施,對于沒有播放鑒權的推流,客戶端拿到直播流之后可以在任何一個不帶水印的播放器里面播放,因此也就失去了視頻保護的能力。綜合考慮云端錄制對于水印的需求,我們一般會選擇「視頻內嵌水印」的方式打水印。

七牛直播云提供的 iOS 和 Android 推流 SDK 中也內置了水印功能,你可以根據自己的需要添加水印或移除水印,并且能夠自由設置水印的大小和位置。其中 iOS 端 SDK PLCameraStreamingKit 的參數設置如下:

1)添加水印

-(void)setWaterMarkWithImage:(UIImage *)wateMarkImage position:(CGPoint)position;
該方法將為直播流添加一個水印,水印的大小由 wateMarkImage 的大小決定,位置由 position 決定,需要注意的是這些值都是以采集數據的像素點為單位的。例如我們使用AVCaptureSessionPreset1280x720 進行采集,同時 wateMarkImage.size 為 (100, 100) 對應的origin 為 (200, 300),那么水印的位置將在大小為 1280x720 的采集畫幅中位于 (200, 300) 的位置,大小為 (100, 100)。

2)移除水印

-(void)clearWaterMark;

3. 濾鏡

除了上面提到的美顏和水印之外,視頻中還有很多其它的處理效果也在這個環節完成。七牛直播云提供的 SDK 在開放性設計基礎之上,通過數據源回調接口,可以支持各種自定義濾鏡的接入。
為了實現豐富的濾鏡效果,在 iOS 端可以考慮使用 GPUImage 這個庫,這是一個開源的基于GPU的圖片或視頻的處理框架,內置了多達120多種常見的濾鏡效果。有了它,添加實時的濾鏡只需要簡單地添加幾行代碼,還可以基于這個庫自己寫算法實現更豐富端效果。GPUImage 地址:https://github.com/BradLarson/GPUImage

除了 iOS 端之外,Android 也有 GPUImage 這個庫的移植:https://github.com/CyberAgent/android-gpuimage同時,Google 官方也開源了一個偉大的庫,覆蓋了 Android 上面很多多媒體和圖形圖像相關的處理:https://github.com/google/grafika

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Swift版本點擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,554評論 7 249
  • 文/果巴大叔 目錄:逆風飛揚 點閱上一章逆風飛揚(15) 把宋嘉送到宿舍樓下,看著她走進宿舍,她三步兩回頭...
    果巴大叔閱讀 278評論 0 3
  • 是誰舞動了這一池的靈秀,是這滿塘的荷嗎?那圓圓的葉片乖巧的鋪滿了水面,滾動的露珠兒珍珠一般在清風朝陽下閃著蜜一般的...
    飛流三千閱讀 208評論 0 1
  • 這周過的真特么慢感覺5.2號朋友婚禮馬上就要到了可是才周二……虐心……沒錢的感覺真特么囧……各種想弄點錢來居然都想...
    5a87f3c099c7閱讀 165評論 0 0
  • 這是一萬多年前的一個寒冷的冬季,地點是中國北方與蒙古草原相接的那片綿延前余公里的陰山山脈。肆虐的暴風雪剛剛止歇,雪...
    克雷閱讀 569評論 0 1