美文网首页
android硬編解碼

android硬編解碼

作者: ai___believe | 来源:发表于2017-03-01 16:12 被阅读563次

HTC(高通) 编码端:zhanganl encode frame.width():360 frame.height():480 width_ :360 height_:480 //实际编码384 480
解码端:zhanganl width:360 height:480 stride:384 output_buffer_size:276480

mate7(海思) 编码端:zhanganl encode frame.width():360 frame.height():480 width_ :360 height_:480 //实际编码368 480
解码端:zhanganl width:368 height:480 stride:368 output_buffer_size:264960

红米note(高通) 编码端:zhanganl encode frame.width():360 frame.height():480 width_ :360 height_:480 //实际编码368 480
解码端:zhanganl width:360 height:480 stride:368 output_buffer_size:278528

金立f103(MTK) 编码端:zhanganl encode frame.width():360 frame.height():480 width_ :360 height_:480 //实际编码368 480
解码端:zhanganl width:360 height:480 stride:360 output_buffer_size:259200

三星S6(Exynos) 编码端:zhanganl encoded image width :368 height:480 fps :0
frame_cropping_flag:1 left_offset:0 right_offset:4 top_offset:0 bottom_offset:0

结论:对于非16对齐的分辨率,都会对齐,但是解码端,解码出来的结果不同,这个主要适配点。
华为mate7,在解码360*480变到240*320的变分辨率时,会有很大的问题,还会保持360*480,而没有变化分辨率,导致一个大屏和一个小屏同时存在。

三星note5 n9200
报如下错误:

03-07 10:21:45.736 F/art (30938): art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xb7
03-07 10:21:45.736 F/art (30938): art/runtime/java_vm_ext.cc:410] string: 'Thread-1334 - 0إӿ'
03-07 10:21:45.736 F/art (30938): art/runtime/java_vm_ext.cc:410] in call to NewStringUTF
03-07 10:21:45.736 F/art (30938): art/runtime/java_vm_ext.cc:410] "<native thread without managed peer>" prio=10 tid=23 Runnable (still starting up)

参考文章:

http://blog.csdn.net/r_ine/article/details/53930327

解决方法则为在AndroidMainifest.xml中的application中加入android:debuggable="false"。

Found target encoder for mime video/avc : OMX.MTK.VIDEO.ENCODER.AVC. Color: 0x13
Found target encoder for mime video/avc : OMX.IMG.TOPAZ.VIDEO.Encoder. Color: 0x15
Found target encoder for mime video/avc : OMX.qcom.video.encoder.avc. Color: 0x15
Found target encoder for mime video/avc : OMX.Exynos.AVC.Encoder. Color: 0x13
Found target encoder for mime video/avc : OMX.Exynos.AVC.Encoder. Color: 0x15

三星S6 240320 支持 360480 花屏

编解码端还有stride 适配问题

对于360*480的编码后,stride会变成368,而华为海思解码后,width和stride都会解码成368,对渲染有影响,图像右边出现绿条。

http://stackoverflow.com/questions/26257474/select-h264-profile-when-encoding-with-mediacodec-and-mtk-codec
http://xcshen.blog.51cto.com/2835389/552669/

统一所有机器使用的profile和level,避免有的手机使用cabac编码,而解码端使用baseline,不支持cabac,无法解码
format.setInteger("profile", 0x01);
format.setInteger("level", 0x01);

关于mediacodec解码遇到的相关问题总结:
1、解码过程中变化分辨率,mate7等会大小屏。
2、对于360*480等不是16整数倍的宽高,不同机器的表现不一,一系列适配问题。
3、解码过程中重新设置解码器,会出现问题。

华为mate7编码720*1280时,会分为2个slice。

相关文章:
http://blog.csdn.net/u012917616/article/details/40948469
http://blog.csdn.net/zqs62761130/article/details/49007879
http://bigflake.com/mediacodec/

相关文章

  • android硬編解碼

    HTC(高通) 编码端:zhanganl encode frame.width():360 frame.heig...

  • Globals in Polymer

    作者:王納米 責任編輯:《代碼指南》編輯部 首發於《代碼指南》(daimazhinan.com) 《代碼指南》編輯...

  • Java HelloWorld 學習

    代碼: 編譯: Main.class 字節碼: Debug 代碼執行 output: javac的命令說明: 執行...

  • Javascript: Prototype and Object

    作者:王納米 首發於《代碼指南》(daimazhinan.com) 《代碼指南》編輯部保留所有權利 1 What ...

  • Android视频播放软解与硬解的区别

    硬解,用自带播放器播放,android中的VideoView 软解,使用音视频解码库,比如FFmpeg 一、硬解码...

  • windows下gVim配置

    默認全屏顯示: 設置編碼為UTF-8: 設置語法高亮和代碼行數: 設置字體: 設置solarized方案:http...

  • OClesson04 字符串操作

    lesson4 pragma mark NSString 字符串类 在c語言中 使用ASCII編碼的字符作為字...

  • Unicode編碼格式中文互轉

    源码展示: 测试输出结果:

  • 缺陷編碼遷徙路徑

    宇宙是一碗熱湯,不停沸騰著,但仍有溫度差異。在適當區域能量以一種類似於吹泡泡的形式,在各處處吹著各種泡泡。 能量吹...

  • 转换编码

    PHP mb_convert_encoding() 指定轉換編碼順序 發表於2012 年 09 月 24 日由Ts...

网友评论

      本文标题:android硬編解碼

      本文链接:https://www.haomeiwen.com/subject/qvfcgttx.html