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

android解碼視頻

發布時間: 2022-06-26 14:53:04

A. 安卓軟體解碼功能強大的視頻播放器

個人推薦vplayer,但最新版出現一個BUG,就是不能在線看視頻
還有個事moboplayer,這個就是快進時剛開始有點卡,播放正常,就是快進沒vplayer流暢,在線非常好,向什麼優酷等視頻網站都OK.

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

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

C. 安卓系統下,有能硬解碼所有視頻格式的播放器嗎

推薦VPlayer,目前最新版本是2.0.6
該播放器能硬解絕大部分主流格式,比如mkv、rmvb、vob、mp4、mpg、ts、tp、flv等
不過需要說明的是:
1.該播放器默認沒有打開硬解模式,請到設置裡面手動開啟
2.硬解能力與手機的GPU性能有關

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

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

E. 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應用程序通過軟解碼播放視頻,就可以流暢的播放了,軟解碼的效率挺高的,沒有卡的感覺!

F. 安卓視頻解碼器,這個安卓視頻解碼器的原理是什麼安卓解碼器一般在apk的哪個文件

據我所了解的,MX Player這款安卓影音播放器可以在安裝軟體之後搭配使用解碼器,硬體解碼和軟體解碼可以相互彌補不足。解碼的原理,簡單的理解就是解碼器識別影音文件的編碼方式,然後將其內部代碼編譯成手機硬體可識別並能表現出來的二進制代碼。亦可理解成解碼器認識出來影音文件,然後介紹給手機硬體,最終手機屏幕展現出能被人們看到的圖像和聲音。
安卓解碼器一般在apk的那個文件?這句話不明白你要表達什麼意思。apk是一個已經編譯好的安卓手機軟體格式,內部也是無數代碼組成的。

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

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

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

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

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

提取碼: j14e

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

Website2APK_jb51.zip t010569817607887e54.png -LTqgVn_fw658.png

熱點內容
安卓手機如何使用大流量 發布:2025-05-14 17:47:34 瀏覽:81
精密模具編程 發布:2025-05-14 17:45:16 瀏覽:499
存儲順序和邏輯順序有什麼區別 發布:2025-05-14 17:44:30 瀏覽:275
安卓版設置里的隱身在哪裡 發布:2025-05-14 17:35:16 瀏覽:333
linuxshell密碼 發布:2025-05-14 17:21:11 瀏覽:200
安卓手機聽筒在哪裡關閉 發布:2025-05-14 17:16:20 瀏覽:456
我的世界炸毀50萬伺服器 發布:2025-05-14 17:16:07 瀏覽:123
存儲站源 發布:2025-05-14 17:14:20 瀏覽:864
win2008的ftp設置 發布:2025-05-14 17:03:31 瀏覽:665
萊克發的工資卡密碼是多少 發布:2025-05-14 16:57:10 瀏覽:179