导航:首页 > 操作系统 > 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硬编码相关的资料

热点内容
flash编程书籍推荐 浏览:835
php获得数组键值 浏览:401
香港云服务器操作 浏览:303
wpe最新源码 浏览:857
自己购买云主服务器推荐 浏览: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