當前位置:首頁 » 安卓系統 » android視頻解碼播放

android視頻解碼播放

發布時間: 2022-08-15 21:36:15

A. 在Android系統中如何調用系統自帶的視頻解碼器

對需要用FF解碼的視頻類型去掉內部解碼勾選
2.在外部解碼器中對所選視頻選擇FF解碼器即可

B. 安卓開發怎麼將和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;
}
}

C. android系統的手機可以播放MKV格式的視頻嗎

原生安卓系統不支持MKV格式視頻,需下載第三方軟體。ipad也只有用第三方軟體進行MKV視頻播放。

雖然是mp4格式,但是這個視頻的內部編碼方式不一樣,手機無法解碼就不能播放。也就是說安卓手機無法解碼這個mp4內部編碼,所以不能播放。

但可以通過下載第三方視頻播放器解決。

D. 開發一個android 視頻播放器 視頻是自動解碼嗎

使用Android自帶的Mediaplayer類進行播放器的開發的話是自動解碼的,但是只支持.3gp,.mp4,.mp3格式文件的解碼,其他類型的文件的解碼是不支持的,需要自己編寫解碼的程序。

E. 急,求一款安卓系統播放器,可以播放rm格式的視頻

RMMV安卓打包教程網路網盤免費資源在線學習

鏈接: https://pan..com/s/1amDlWoswlD540r825RDcXA

提取碼: j14e

RMMV安卓打包教程 啟動圖片素材 打包工具 java7 jre-7u65-windows-x64.exe

Website2APK_jb51.zip t010569817607887e54.png -LTqgVn_fw658.png

F. 怎樣對用視頻編碼的數據用android進行解碼

1. 通過tcp或者udp接收伺服器的音視頻編碼,然後用ndk來調用ffmpeg的so進行解碼,然後用java來顯示和播放音視頻(方法看上去很簡單,但好像ndk不好學,本人一直只用c++開發程序)
2. 用其他的java解碼程序來進行解碼.

G. Android如何播放mov格式的視頻文件

Android播放「mov」格式的視頻文件時,可以藉助第三方軟體將「mov」格式轉換成「mp4」。

此處以微信為例,具體步驟如下:

1、打開安卓手機的微信軟體,點開任意聊天框將「mov」格式的視頻發送過去。


(7)android視頻解碼播放擴展閱讀:

MP4與MOV的區別:

「mp4」格式的視頻相比起「mov」格式的視頻體積要小得多,前者格式壓縮率相比後者要大得多,雖然相對來說更省存儲空間,但畫質將會受到影響,很不利於後期編輯和製作,尤其是後期特效和調色。

這一點很像數碼相機的RAW格式和jpeg格式,前者為無損壓縮格式後者則是有損壓縮格式,前者的後期調整餘地更大。這也是很多資深的攝影者更願意用前者拍攝的原因。

H. 安卓手機上什麼視頻播放器解碼能力強人性化

識別格式比較多的有moboplayer等,但硬體加速支持不好。支持硬體加速最好的有三大播放器,分別是MX
player、Dice
Plyer和BS
player,如果只要解碼能力強,那就moboplayer吧。

I. android下視頻文件從解碼到播放需要哪幾步,請簡述

Android通過軟解碼播放視頻
1, 一般情況下Android的平台都是硬解碼視頻的,尤其是在Arm平台這種成熟的硬體平台上面(硬解碼代碼由晶元廠商提供)。但是Android移植到
2, MIPS平台時間還不長,還不成熟,還需要自己實現硬體解碼的工作。為了早日讓Android在MIPS平台運行起來,我選擇了先用軟解碼播放視頻。
3,Android代碼是從Android on MIPS社區獲得的代碼。發現軟解碼視頻播放過程中會發生崩潰。經過分析好像是內存分配的問題。

4, 經過研究OpenCore庫(Android框架是通過OpenCore來播放視頻的,網上有很多關於OpenCore的介紹,這里就不多說了),並參考Android平台——Surfaceflinger機制。發現問題出在源文件:
frameworks/base/libs/surfaceflinger/LayerBuffer.cpp的LayerBuffer::BufferSource::postBuffer方法中:
............
buffer = new LayerBuffer::Buffer(buffers, offset);
............類LayerBuffer::Buffer的構造函數代碼如下:
LayerBuffer::Buffer::Buffer(const ISurface::BufferHeap& buffers, ssize_t offset)
: mBufferHeap(buffers)
{
NativeBuffer& src(mNativeBuffer);
g.handle = 0;
gralloc_mole_t const * mole = LayerBuffer::getGrallocMole();
if (mole && mole->perform) {
int err = mole->perform(mole,
GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER,
buffers.heap->heapID(), buffers.heap->getSize(),
offset, buffers.heap->base(),
& g.handle);
if (err == NO_ERROR) {
op.l = 0;
op.t = 0;
op.r = buffers.w;
op.b = buffers.h;
g.w = buffers.hor_stride ?: buffers.w;
g.h = r_stride ?: buffers.h;
rmat = rmat;
se = (void*)(intptr_t(buffers.heap->base()) + offset);
}
}
}LayerBuffer::getGrallocMole方法的調用到的Gralloc為:
hardware/libhardware/moles/gralloc/gralloc.cpp因為的沒有實現在自己的硬體只能用通用的Gralloc,經過分析發現通用的Gralloc沒有實現
5, mole->perform函數指針,mole->perform為NULL,所以不會對Buffer進行必要的初始化(我覺得應該是一個疏忽,只是不知道是谷歌的疏忽,還是MIPS移植人員的疏忽,最起碼應該能夠讓通用硬體能跑起來)。參考其他的硬體實現一個perform函數指針到通用Gralloc中。
在源文件:
hardware/libhardware/moles/gralloc/mapper.cpp增加如下的函數定義:
int gralloc_perform(struct gralloc_mole_t const* mole,
int operation, ... )
{
int res = -EINVAL;
va_list args;
va_start(args, operation);
switch (operation) {
case GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER: {
int fd = va_arg(args, int);
size_t size = va_arg(args, size_t);
size_t offset = va_arg(args, size_t);
void* base = va_arg(args, void*);
native_handle_t** handle = va_arg(args, native_handle_t**);
private_handle_t* hnd = (private_handle_t*)native_handle_create(
private_handle_t::sNumFds, private_handle_t::sNumInts);
hnd->magic = private_handle_t::sMagic;
hnd->fd = fd;
hnd->flags = private_handle_t::PRIV_FLAGS_USES_PMEM;
hnd->size = size;
hnd->offset = offset;
hnd->base = intptr_t(base) + offset;
hnd->lockState = private_handle_t::LOCK_STATE_MAPPED;
*handle = (native_handle_t *)hnd;
res = 0;
break;
}
}
va_end(args);
return res;
}然後在gralloc.cpp中增加,gralloc_perform的聲明:
extern int gralloc_perform(struct gralloc_mole_t const* mole,
int operation, ... );並修改HAL_MODULE_INFO_SYM的定義,增加perform欄位的定義:
struct private_mole_t HAL_MODULE_INFO_SYM = {
base: {
.......
perform: gralloc_perform,
},
......
}; 重新編譯gralloc模塊,再次用Gallary應用程序通過軟解碼播放視頻,就可以流暢的播放了,軟解碼的效率挺高的,沒有卡的感覺!

熱點內容
明日之後怎麼實名認證安卓 發布:2024-04-19 13:35:55 瀏覽:936
數據加密解密演算法 發布:2024-04-19 13:25:52 瀏覽:945
安卓平板存儲空間不知道用在哪裡 發布:2024-04-19 12:58:57 瀏覽:765
出售lol腳本防封判幾年 發布:2024-04-19 12:45:14 瀏覽:188
安卓電視會員和平板哪個好 發布:2024-04-19 12:42:48 瀏覽:835
雲伺服器2m寬是多少 發布:2024-04-19 11:56:36 瀏覽:728
android層布局 發布:2024-04-19 11:52:13 瀏覽:771
1500元組裝伺服器電腦 發布:2024-04-19 11:47:25 瀏覽:469
qq改密碼怎麼改手機 發布:2024-04-19 11:39:17 瀏覽:969
電腦上如何看wifi密碼 發布:2024-04-19 11:34:14 瀏覽:416