音視頻的流程:錄製、播放、編碼解碼、上傳下載等

仿網易雲音樂 安卓版-- https://github.com/aa112901/remusic

Android本地視頻播放器開發- http://blog.csdn.NET/jwzhangjie/article/category/953509
android本地視頻播放器開發--NDK編譯FFmpeg- http://blog.csdn.net/jwzhangjie/article/details/9038111

> 多媒體流的幾個環節:採集,編碼,推流,轉碼,分發,拉流,解碼和渲染。
  推流端的協議有RTMP, WebRTC和基於UDP的私有協議:
  1) RTMP是基於TCP的標準協議,CDN網絡普遍支持,也能做到相對比較低的延遲。即構科技的互動直播技術在推流端使用RTMP協議,拉流端兼容三種協議:RTMP,HLS和FLV。HLS協議的延遲比較大,在需要進行連麥互動的場景下,不應該使用HLS協議。
  2) WebRTC的好處在於用戶體驗好,不需要安裝東西,分享一個鏈接就可以看。但是它有一個缺點,就是WebRTC是Google推的一項技術,除了Google Chrome和Opera支持WebRTC,其他瀏覽器大部分不支持WebRTC。換一句話說,40%的瀏覽器支持WebRTC,剩下60%瀏覽器不支持,所以適用範圍就比較侷限。然後,在中國國內,WebRTC在Google Chrome上的表現也大打折扣。最後,因爲瀏覽器沒有開放核心的能力,所以在瀏覽器上運行的協議比較難以做到比較低的延遲。
  3) 基於UDP的私有協議十分適合做實時音視頻系統,它是面向無連接的,避免了TCP做網絡質量控制所需要的開銷,能夠做到比較低的延遲。但是它也有一個缺點,那就是私有協議的兼容性不好。CDN支持標準的RTMP協議,但是不支持基於UDP的私有協議。爲了吸納UDP的優點,而避免UDP的缺點,即構科技的互動直播技術採用了基於UDP的私有協議作爲補充,在有必要的時候用來彌補RTMP協議的不足。比如說,只有在網絡環境比較惡劣或者在跨國互通的情況下,才使用基於UDP的私有協議;比如說,只在推流端到媒體服務器這一段才使用基於UDP的私有協議,而從媒體服務器轉推流到CDN網絡這一段採用RTMP協議,在這兩段之間通過把UDP私有協議轉換成RTMP協議來進行適配和銜接。這樣一來,即構科技的直播方案既擁有超低延遲的優勢,又保留了標準協議普遍被CDN網絡支持的好處。


嗶哩嗶哩殷汶傑:合格的多媒體技術工程師有成爲全棧架構師的潛質 - http://geek.csdn.Net/news/detail/124824
殷汶傑 視頻方案博客 - http://blog.csdn.net/shaqoneal

> 音視頻的錄製、播放、編碼、上傳、下載、觀看等,視頻編解碼,音頻編解碼,線音頻播放 音視頻同步等,軟硬編碼解碼

IM軟件就需要即時通訊技術、視頻軟件就需要視頻編解碼技術、遊戲就需要引擎技術。

查看源碼的工具:sourceinsight , 不瞭解JNI的一定要學習下,否則只能在Java層搞,太狹隘了。


視頻播放Demo -http://blog.csdn.net/itachi85/article/details/7216962 ,http://blog.csdn.net/x605940745/article/details/18302111

音頻數據的播放- http://download.csdn.net/detail/geniuseoe2012/4378393
  AudioRecord和AudioTrack類是Android獲取和播放音頻流的重要類,放置在android.media包中。與該包中 的MediaRecorder和MediaPlayer類不同,AudioRecord和AudioTrack類在獲取和播放音頻數據流時無需通過文件保 存和文件讀取,可以動態地直接獲取和播放音頻流,在實時處理音頻數據流時非常有用.
  當然,如果用戶只想錄音後寫入文件或從文件中取得音頻流進行播放,那麼直接使用MediaRecorder和MediaPlayer類是首選方案,因爲這 兩個類使用非常方便,而且成功率很高。而AudioRecord和AudioTrack類的使用卻比較複雜,我們發現很多人都不能成功地使用這兩個類,甚 至認爲Android的這兩個類是不能工作的。
  MediaPlayer在底層是基於OpenCore(PacketVideo)的庫實現的,爲了構建一個MediaPlayer程序,上層還包含了進程間通訊等內容,這種進程間通訊的基礎是Android基本庫中的Binder機制。但是該類只能對完整的音頻文件進行操作,而不能直接對純PCM音頻數據操作。假如我們通過解碼得到PCM數據源,又當如何將它們播放?沒錯,就是用AudioTrack這個類(MediaPlayer內部也是調用該類進行真正的播放音頻流操作).

Android深入淺出之Audio 第一部分 AudioTrack分析 - http://www.cnblogs.com/innost/archive/2011/01/09/1931457.html

https://github.com/mabeijianxi/small-video-record


Audio:
 AudioManager:這個主要是用來管理Audio系統的
 AudioTrack:這個主要是用來播放聲音的

 AudioRecord:這個主要是用來錄音的

百度MP3下載連接: http://219.138.125.22/myweb/mp3/CMP3/JH19.MP3

服務端共開放兩個端口,一個udp上行端口用來接收amr音頻流,另一個tcp下行端口用來發送amr音頻流。服務端實現了組播的功能,即一個人在錄音,可以同時讓很多人同時聽到。

錄製音頻demo-http://m.blog.csdn.net/article/details?id=51074218 , http://download.csdn.net/detail/u012808234/9482926
android語音錄製與播放-http://blog.csdn.net/xu_fu/article/details/12648845
  android語音錄製可以通過MediaRecorder和AudioRecorder。
  MediaRecorder本來是多媒體錄製控件,可以同時錄製視頻和語音,當不指定視頻源時就只錄制語音;AudioRecorder只能錄製語音。
  二者錄製的區別在於,MediaRecorder固定了語音的編碼格式,具體平臺支持類型可以在http://developer.android.com/guide/appendix/media-formats.html這裏查看,而且使用時指定輸出文件,在錄製的同時系統將語音數據寫入文件。AudioRecorder輸出的是pcm,即原始音頻數據,使用者需要自己讀取這些數據,這樣的好處是可以根據需要邊錄製邊對音頻數據處理,讀取的同時也可以保存到文件進行存儲.


> 視頻實時上傳
Android仿微信錄製視頻和播放-http://download.csdn.net/download/u010665691/8805731
Android開源視頻錄製庫:LandscapeVideoCamera
Android 實現視頻錄製播放-http://blog.csdn.net/yilip/article/details/45075541

現在有個場景是錄製視頻是一直在錄的,有個拍照的功能,怎麼取到實時預覽的那一幀呢?Camera有previewlistener,設置監聽器,在onFrame中可以接受到每一幀的數據。

Android 使用FFmpeg實現視頻錄製和視頻播放-http://download.csdn.net/detail/somnus_comm/8691523
vitamio框架開發視頻播放需要的全部類庫 - http://download.csdn.net/detail/gaoshouxiaodi/8173955
android錄製視頻實現-http://blog.csdn.net/csdn_blog_lcl/article/details/52673905

Android端對網頁內的圖片/視頻進行探測的一個小應用 源碼的開始傳 https://github.com/qqliu10u/ResourceDetector
Android仿愛奇藝視頻的下載模塊所寫,簡單實現下載原理-http://download.csdn.net/detail/u011495464/9506943
android 在線視頻邊下邊播-http://download.csdn.net/download/lin415005334/8855367
android邊緩存邊播放mp4-http://blog.csdn.net/c_crazyren/article/details/7184948


Android使用VideoView播放網絡視頻-http://blog.csdn.net/kepoon/article/details/6772060
Android視頻實時採集和播放實例-http://download.csdn.net/download/zy452362635/6034369  
android推送實時視頻流到darwin流媒體服務器的思路-http://blog.csdn.net/xiaoliouc/article/details/8723246


Android 實時視頻採集/編碼/傳輸/解碼/播放—方案調研-http://blog.csdn.net/sinat_35845281/article/details/52794344

------------------------------------------------

視頻開發 Android

android 視頻播放(一)利用android原生的videoview- http://blog.csdn.net/shenxiaolei507/article/details/41046345
android視頻播放(二) 利用android原生的MediaPlayer+SurfaceView- http://blog.csdn.net/shenxiaolei507/article/details/41349295

http://stackoverflow.com/questions/25079145/how-to-resolve-error-libx264-not-found
https://github.com/halfninja/android-ffmpeg-x264
https://github.com/dennishucd/FFmpeg4Android
http://download.csdn.net/detail/qandroidj/4137324
android 視頻開發(仿美拍,糗百)- http://download.csdn.net/detail/u013895206/8850751
vitamio 
webRTC 
ffmpeg 
vlc 
ijkplayer
android音視頻點/直播模塊開發- http://blog.csdn.net/u011570979/article/details/51205401

------------------------------------------------

Android使用SurfaceView播放視頻時橫豎屏的調整 - http://blog.chinaunix.net/uid-20771867-id-4171565.html , https://github.com/Chaoba/BlueVideoPlayer
支持橫豎屏切換的視頻播放器demo(iOS)- http://download.csdn.net/download/yqxh_wang/8950747
android_橫豎屏切換demo- http://download.csdn.net/download/agan75/6033923
android 視頻播放 點擊橫豎屏切換 自動旋轉橫豎屏切換 衝突- http://download.csdn.net/download/liubo080852/8446445
Android網頁播放視頻(含橫豎屏切換)DEMO(實測有效)- http://download.csdn.net/detail/nuobabijie730/9780160

Android實現視頻播放的話,有2中方式,第一種是MediaPlayer+surfaceView實現,第二種是直接用VideoView來實現,當然市面上也有一些主流的視頻能播放的框架,像Vitamio,ExoPlayer等。
Android三種播放視頻的方式- http://blog.csdn.net/itachi85/article/details/7216962
Android 利用發送Intent播放本地視頻和網絡視頻- http://blog.csdn.net/dj0379/article/details/50915770

發佈了15 篇原創文章 · 獲贊 20 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章