導航:首頁 > 操作系統 > androidh264硬編碼

androidh264硬編碼

發布時間:2022-05-28 20:00:52

android自帶的瀏覽器是否支持h264編碼的html5視頻

特別是移動平台的瀏覽器對h264的支持尤其重要,近兩年的ARM處理器基本都包含h264硬解碼,若不啟用硬解碼,不但耗電,流暢性也得不到保證。

② 這兩種h264編碼有什麼區別

H264(intel quick sync video)是用Intel CPU的內部GPU核顯進行編碼,俗稱硬編碼。
H264(CPU)就是直接用CPU進行編碼,俗稱軟編碼。

③ android使用MediaCodec進行解碼,就是硬解碼嗎

Android api中有自帶的硬解碼方法MediaCodec,但是SDK並沒有規定輸出格式,參考H264的解碼格式

④ 安卓開發怎麼將和h264文件解碼播放

如題所示,我想將攝像頭採集的數據進行h.264硬編碼,我想知道Android是如何對視頻數據進行硬體編碼的
目前已經知道的方案有:
1、用Android4.1 API MediaCodec來對視頻數據進行編碼

http://stackoverflow.com/q/17232477/2293921
此種方式我測試了,並未成功,目前一直卡在這里,如果你等幫助我,我將非常感激

2、通過MediaRecorder方式對數據進行編碼

具體可參考 http://blog.csdn.net/zblue78/article/details/6083374

3、通過移植ffmpeg

這種方式沒接觸過,也不了解

可能還有一些其他的方式來對視頻硬編碼,如果你了解一下,感謝分享!

綜上,我更傾向於1的方式去做

我來回答

Android , MediaCodec , 硬編碼

post_newreply

//$(\'note_\').focus();
function succeedhandle_vfastpost(url, message, param) {
$(\'vmessage\').value = \'\';
succeedhandle_fastpost(url, message, param);
showCreditPrompt();
}
var vf_tips = \'#在這里快速回復#\';
$(\'vmessage\').value = vf_tips;
$(\'vmessage\').style.color = \'#CDCDCD\';
$(\'vmessage\').onclick = function() {
if($(\'vmessage\').value==vf_tips) {
$(\'vmessage\').value=\'\';
$(\'vmessage\').style.color=\"#000\";
}
}
$(\'vmessage\').onblur = function() {
if(!$(\'vmessage\').value) {
$(\'vmessage\').value=vf_tips;
$(\'vmessage\').style.color=\"#CDCDCD\";
}
}
$(\'vreplysubmit\').onclick = function() {
if($(\'vmessage\').value == vf_tips) {
return false;
}
}

⑤ android mediacodec編碼h264 怎樣調節gop

簡單地說。軟解碼是用軟體方式進行解碼,需要佔用CPU資源,速度相當較慢。硬解碼直接用硬體方式解決,不佔用CPU資源,速度相對較快。

⑥ 在android 平台實現硬解的大俠們,你們是怎麼實現硬解碼的

1、視頻尺寸
一般都能支持176X144/352X288這種尺寸,但是大一些的,640X480就有很多機子不行了,至於為什麼,我也不知道。當然,這個尺寸必須和攝像頭預覽的尺寸一致,預覽的尺寸可以枚舉一下。
2、顏色空間
根據ANdroid SDK文檔,確保所有硬體平台都支持的顏色,在攝像頭預覽輸出是YUV12,在編碼器輸入是COLOR_FormatYUV420Planar,也就是前面代碼中設置的那樣。 不過,文檔終究是文檔,否則安卓就不是安卓。
在有的平台上,這兩個顏色格式是一樣的,攝像頭的輸出可以直接作為編碼器的輸入。也有的平台,兩個是不一樣的,前者就是YUV12,後者等於I420,需要把前者的UV分量顛倒一下。
byte[] i420bytes = null;
private byte[] swapYV12toI420(byte[] yv12bytes, int width, int height) {
if (i420bytes == null)
i420bytes = new byte[yv12bytes.length];
for (int i = 0; i < width*height; i++)
i420bytes[i] = yv12bytes[i];
for (int i = width*height; i < width*height + (width/2*height/2); i++)
i420bytes[i] = yv12bytes[i + (width/2*height/2)];
for (int i = width*height + (width/2*height/2); i < width*height + 2*(width/2*height/2); i++)
i420bytes[i] = yv12bytes[i - (width/2*height/2)];
return i420bytes;
}
3、輸入輸出緩沖區的格式
SDK里並沒有規定格式,但是,這種情況H264的格式基本上就是附錄B。但是,也有比較有特色的,它就是不帶那個StartCode,就是那個0x000001,搞得把他編碼器編出來的東西送給他的解碼器。
ByteBuffer outputBuffer = outputBuffers[outputBufferIndex];
byte[] outData = new byte[bufferInfo.size + 3];
outputBuffer.get(outData, 3, bufferInfo.size);
if (frameListener != null) {
if ((outData[3]==0 && outData[4]==0 && outData[5]==1)
|| (outData[3]==0 && outData[4]==0 && outData[5]==0 && outData[6]==1))
{
frameListener.onFrame(outData, 3, outData.length-3, bufferInfo.flags);
}
else
{
outData[0] = 0;
outData[1] = 0;
outData[2] = 1;
frameListener.onFrame(outData, 0, outData.length, bufferInfo.flags);
}
}

⑦ android開發怎麼把視頻編碼成H265

首先,你的文件有沒有錯誤。 比如,拿出來,放在pc上看看是否能播。不能播,可能你保存的文件有誤。如果,能播。那麼可能與文件的許可權有問題。如果放在file的目錄下,可能需要更改文件目錄及創建的文件的許可權。其方法網上有,調用java的方法,使用linux命令行。

⑧ android h264硬編碼,得到流寫入文件後不能播放是怎麼回事

自己寫解碼264文件,如果用view顯示,就需要轉成bitmap顯示,或者使用opengl可以顯示yuv數據

如果已經保存成MP4格式的文件,就不需要解碼了,通過mediaplayer就能播

⑨ android mediarecorder硬編碼獲取音視頻流,怎樣設置時間戳達到音視頻同步

參考spydroid開源項目,這個開源項目有音頻(aac),視頻(H264)流的讀取,具體操作都有,就是音視頻時間戳不知怎麼弄,音視頻同步搞不定,您有想法記得分享哦!

⑩ 如何把攝像頭採集的圖像進行h264硬編碼

這個時間戳和h.264的時間戳可以完全採用一樣的。樓主是希望,時間戳用的是當前的采樣的時間嗎??這樣的話會造成顯示的不正常。
另外延時樓主也要估算網路的情況問題,你的RTP伺服器發送端是否正常。延遲可能是時間戳定時器的問題,但是也有可能是網傳的問題。希望樓主早日解決問題。

閱讀全文

與androidh264硬編碼相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:422
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:192
pdf劈開合並 瀏覽:29
不能修改的pdf 瀏覽:752
同城公眾源碼 瀏覽:489
一個伺服器2個埠怎麼映射 瀏覽:298
java字元串ascii碼 瀏覽:79
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:946
安卓導航無聲音怎麼維修 瀏覽:333
app怎麼裝視頻 瀏覽:431
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491