錄制小視頻,一定要注意的參數(shù)

        mCamera.unlock();
        if (mMediaRecorder == null) {
            mMediaRecorder = new MediaRecorder();
            mMediaRecorder.setOrientationHint(90);
        }
        if (isCameraFrontFacing()) {
            mMediaRecorder.setOrientationHint(270);
        }

        // Step 1: Unlock and set camera to MediaRecorder
        mMediaRecorder.reset();
        mMediaRecorder.setCamera(mCamera);

        // Step 2: Set sources
        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

        // Step 3: Set a Camera Parameters
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        /* Fixed video Size: 640 * 480*/
        mMediaRecorder.setVideoSize(optimalPicSize.width, optimalPicSize.height);
        /* Encoding bit rate: 1 * 1024 * 1024*/
        mMediaRecorder.setVideoEncodingBitRate((int) ((1.5) * 1024 * 1024));
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        mMediaRecorder.setAudioSamplingRate(44); // 設(shè)置音頻采樣率為44
        mMediaRecorder.setAudioEncodingBitRate(64); // 設(shè)置音頻比特率為64
        mMediaRecorder.setAudioChannels(1); // 設(shè)置錄制的音頻通道數(shù)

        // Step 4: Set output file
        mMediaRecorder.setOutputFile(savePath);
Step 1:
  1. setCamera參數(shù)能夠使得在預(yù)覽和錄制中快速切換,避免Camera對象的重新加載睦焕。在某些Android手機自帶的照相機程序中落君,切換預(yù)覽與錄制中的短暫卡頓梆奈,讀者可自行體會劣光。
  2. mMediaRecorder.setOrientationHint(90)在錄制方向為豎直(portrait)時使用袜蚕,它能使視頻文件的沿順時針方向旋轉(zhuǎn)90度,如果不設(shè)置此項绢涡,播放視頻時牲剃,畫面會發(fā)生90度的旋轉(zhuǎn)四啰。不過這里更重要的是寒匙,即使設(shè)置了此項,在某些播放器上焰轻,畫面依然會有90度的旋轉(zhuǎn)(比如將在手機上正常播放的視頻導(dǎo)入到PC中進行播放,或者嵌入H5的video標(biāo)簽中)狭归,這可是為什么呢夭坪?注意setOrientationHint的說明:Note that some video players may choose to ignore the compostion matrix in a video during playback. 那么如何做到在所有播放器上都能以正常方向播放呢文判?稍等过椎,后續(xù)專門對其進行說明。
Step 2:
  1. setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION)戏仓,VOICE_RECOGNITION相比于MIC會根據(jù)語音識別的需要做一些調(diào)諧疚宇,當(dāng)然,這需要在系統(tǒng)支持的情況下赏殃。
  2. setVideoSource自然是VideoSource.CAMERA敷待,只是在此兩項設(shè)置必須在設(shè)置編碼器之前設(shè)置,這無需說明仁热。
Step 3:
  1. setOutputFormat需要在Step 2之后榜揖,并且在prepare()之前。這里采用OutputFormat.MPEG_4格式抗蠢。
  2. setVideoSize需要權(quán)衡的因素較多举哟,主要包括三方面:MediaRecorder支持的錄制尺寸、視頻文件的大小以及兼容不同Android機型迅矛。這里采用640 * 480(微信小視頻的尺寸是320*240)妨猩,文件大小在500-1000kb之間,并且市面上99%以上機型支持此錄制尺寸秽褒。
  3. setVideoEncodingBitRate與視頻的清晰度有關(guān)壶硅,設(shè)置此參數(shù)需要權(quán)衡清晰度與文件大小的關(guān)系。太高销斟,文件大不易傳輸庐椒;太低,文件清晰度低蚂踊,識別率低约谈。需要根據(jù)實際業(yè)務(wù)場景靈活調(diào)整。
  4. setVideoEncoder采用H264編碼悴势,MPEG4窗宇、H263、H264等不同編碼的差別比較可參考http://blog.csdn.net/wcl0715/article/details/676137特纤,實際使用中军俊,H264的壓縮率較高,推薦使用捧存。
  5. setAudioEncoder采用AudioEncoder.AAC粪躬,該設(shè)置主要是考慮其通用性担败、兼容性。
Step 4:
  1. setMaxFileSize指定錄制文件的大小限制镰官,當(dāng)然還可以限制其最大錄制時間提前。
  2. setOutputFile指定輸出視頻的路徑。
  3. setOnErrorListener指定錯誤監(jiān)聽器泳唠。
總結(jié) :
  1. 代碼順序很重要,不按順序執(zhí)行代碼會拋異常
  2. setVideoEncodingBitRate 必須設(shè)置值,不設(shè)置值拍攝出來的視頻非常模糊
參考文檔 :

錄制視頻常見問題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狈网,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子笨腥,更是在濱河造成了極大的恐慌拓哺,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脖母,死亡現(xiàn)場離奇詭異士鸥,居然都是意外死亡,警方通過查閱死者的電腦和手機谆级,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門烤礁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肥照,你說我怎么就攤上這事脚仔。” “怎么了建峭?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵玻侥,是天一觀的道長。 經(jīng)常有香客問我亿蒸,道長凑兰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任边锁,我火速辦了婚禮姑食,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘茅坛。我一直安慰自己音半,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布贡蓖。 她就那樣靜靜地躺著曹鸠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斥铺。 梳的紋絲不亂的頭發(fā)上彻桃,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音晾蜘,去河邊找鬼邻眷。 笑死眠屎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肆饶。 我是一名探鬼主播改衩,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驯镊!你這毒婦竟也來了葫督?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤阿宅,失蹤者是張志新(化名)和其女友劉穎候衍,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洒放,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年滨砍,在試婚紗的時候發(fā)現(xiàn)自己被綠了往湿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡惋戏,死狀恐怖领追,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情响逢,我是刑警寧澤绒窑,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站舔亭,受9級特大地震影響些膨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钦铺,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一订雾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矛洞,春花似錦洼哎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抽兆,卻和暖如春识补,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背郊丛。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工李请, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞧筛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓导盅,卻偏偏與公主長得像较幌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子白翻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容