看 stagefright 源码应该知道怎么做.用 OpenMAX AL 做 h264 播放. 从网上收到 h264 码流后, 换成 mpeg2 ts 格式, 用 android buffer 方式
供应 mediaplay 播放. 但有约 1 秒钟延时. 我在 ddms 中看到供应 大约 6-7 个 frame 后, 才看到屏幕上有画面. 猜测 StageFright/NuPlyaer on OpenMAX 会缓存一点画面后才肯播出画面. 看来只有直接调用 OpenMAX IL 直接解码 和 显示, 才能不延时. 有人做过 OpenMAX IL 直接解码然后显示吗 ? 测试用 三星 android 4.0.2 ( i9250 ) 1080P 实时解码没有问题.有会的回个贴. 我会马上联系.  

解决方案 »

  1.   

    我们的项目, 码流是从网上实时传输过来的. 这个不是问题( 直接调用 JNI 接口程序获取码流 ). 只是要直接调用硬件解码, 而不是通过 OpenMAX/MediaPlayer 来解码( 它也是硬件解码, 但它会延时1秒才显示, 就差这1秒钟, 实时感就差点了 ). 
      

  2.   

    延迟恐怕是时间控制的问题吧,SERVER发个RTCP_SR试试。
    如果你用java,现在是有MediaCodec接口了。
    c++如何访问摄像头、编解码等,我也在找呢,知道方法的告诉一声