原创 EasyPlayer Android 結構淺析

EasyPlayer 是一款小而美的RTSP安卓播放器。具有起搏快、延遲底、兼容性好的特點,而且支持抓拍、錄像等實用功能。 好了,我就在此簡單介紹一下播放器的代碼結構吧! 播放 簡單來說,EasyPlayer就是一個典型的生產者

原创 EasyPusher實現安卓Android手機直播推送同步錄像功能(源碼解析)

EasyPusher是一款非常棒的推送客戶端。穩定、高效、低延遲,音視頻同步等都特別好。裝在安卓上可作爲一款單兵設備來用。說到單兵,在項目中通常都需要邊傳邊錄的功能,因此後來EasyPusher也加入了該特性。該文章將結合代碼來闡

原创 Android cookieManager & OKHttp以及EasyPlayerPro的媒體流的認證的實現

Android通過CookManager來管理Cookie。在發送\響應過一個HTTP請求之後, CookManager首先將響應裏的Set-cookie字段parse成一個Cookie列表,並存儲到本地;然後每次請求時,都從本

原创 YUV格式轉換、旋轉

做過流媒體開發的人應該對YUV數據不陌生,YUV將視頻幀編碼成Y(亮度)、U(藍色)、V(紅色)三個分量,在內存中,Y分量長度爲w*h,U、V分量長度一般爲w/2 * h/2。基本上從攝像頭採集到的視頻數據都屬於這種格式。在此主要

原创 EasyClient android 編譯arm64-v8a庫遇到的坑

最近客戶有需求,需要編譯安卓上arm64的EasyClient庫。本來想想,很easy的一個事情,結果遇到了坑了,折騰了好久。。。爲了這個揪心低級失誤,特來寫篇博客記錄下。 通常在jni中,native層的句柄,一般會用java層

原创 Android MediaMuxer錄像(支持G711音頻)

Android平臺的MediaMuxer是個非常好的錄像庫,它能將H.264視頻+AAC音頻存儲成.mp4格式的文件,而且穩定性、同步效果都非常好。 MediaMuxer在安卓版的EasyPlayer和EasyPusher都用到了

原创 EasyPlayerPro基於FFMPEG實現播放同時進行錄像的功能

之前有博客專門介紹了EasyPlayer的本地錄像的功能,簡單來說,EasyPlayer是一款RTSP播放器,它將RTSP流裏的音視頻媒體幀解析出來,並用安卓系統提供的MediaMuxer類進行錄像.那EasyPlayerPro可

原创 EasyPlayer聲音自動停止、恢復,一鍵靜音等功能

我們在開發播放器時,可能會需要靜音或者降低音量的功能。比如說某款音樂播放器,當在後臺播放時,如果此時有另外的系統通知聲音發出,可能播放器會把音量降低,系統聲音結束後,再調高;如果有來電了,播放器可能會把音樂暫停,等通話結束後再繼續

原创 基於EasyPlayer和EasyPusher實現安卓平臺的雙向視頻對講

EasyPlayer是播放RTSP視頻的屠龍刀,而EasyPusher又是推送RTSP的倚天劍,那將這兩個神兵利器合起來,豈不是很厲害!基於這個思路,我們實現了一款視頻對講APP,稱之爲EasyVideoTalk。 簡單來說,針

原创 Android H.265硬解碼&EasyPlayerPro

H.265編碼算法作爲新一代視頻編碼標準,在編碼效果上有了很大的進步,同樣清晰度的視頻,265要比264有着更低的碼率。關於265對比264的優越性,網上有更專業的文章來作分析,我也僅對這兩種算法略知皮毛,因此不多闡述。 基於其更

原创 EasyPlayer實現視頻的局部縮放、平移功能(類似快手視頻)

EasyPlayer實現視頻的局部縮放、平移功能(類似快手視頻) 在預覽圖片的時候,利用手勢控制圖片的縮放、平移,已經是智能手機時代最基本的操作。而對於視頻,很少有播放器支持這樣的操作。實際上,在觀看視頻的時候,我們可能會想觀看某

原创 EasyPlayer實現直播抓拍

對於一個裸的RTSP URL,存放在播放列表上略顯單調與枯燥。大家可以看到EasyPlayer在播放完視頻後會保存一幀圖片到列表上。 那麼這個功能是如何做到的呢? 如果自己實現解碼的話,比如使用ffmpeg解碼,這種情況下,將

原创 EasyPusher工程解構簡析

EasyPusher主要有三部分組件組成:採集,編碼,疊加,上傳.在這個基礎上同時支持本地存儲\後臺預覽的功能.主要業務模塊與相關類之間的關係如圖所示: Created with Raphaël 2.1.0StreamActivi

原创 BUG修復:EasyPlayer卡在首幀的bug修改

最近發現某些手機在運行EasyPlayer播放視頻時,會停留在第一幀畫面,雖然有碼率預示着接收端沒有問題,但是畫面卻卡着不動. 一般來講,這個現象有三種原因導致: 沒有接收到視頻幀; 解碼器出錯,只解出了第一幀圖像; 時間戳計

原创 EasyPlayer實現播放時同步錄像的功能

在之前一片博客《 EasyPusher實現安卓Android手機直播推送同步錄像功能》(http://blog.csdn.net/jyt0551/article/details/58714595)中,我寫到了EasyPusher推