现在老板说要做一个android的音视频显示,我们已经有一个服务器,上面是用c++调用ffmpeg的编码,想把ffmpeg经过编码后的数据,在android上进行显示和播放,但我还没有接触过android,想大家指明一个路给我走,以免走弯路,我想有两个方法,不懂哪个好
1. 通过tcp或者udp接收服务器的音视频编码,然后用ndk来调用ffmpeg的so进行解码,然后用java来显示和播放音视频(方法看上去很简单,但好像ndk不好学,本人一直只用c++开发程序)
2. 用其他的java解码程序来进行解码。(这个不懂是否有java这种解码的程序)现在我想弄清楚,android和服务器的视频通信用什么进行实时的数据交换?另外一个问题就是怎样在android上解码音视频?还需要ffmpeg库吗?

解决方案 »

  1.   

    你是什么编译呢? H264/mpeg4 ?这两个解码平台一般都带了
    关键你的传输协议是标准的吗?android平台默认支持吗?如果不支持,你要是
    自己定制framework,那比较简单,扩展stagefright就OK了,如果只是
    应用层支持,那估计得使用NDK编程,java解码基本上不用考虑了
      

  2.   

    ffmpeg,现在只有用这个方法了,要么就自己用C写,java是实现不了的,
    我们现在就是用ffmpeg源码编译成so,jni调用实现视频转码
      

  3.   

    方案:网络通讯,数据包接收处理及解码都放在jni中处理java通过调用jni接口进行播放能不能把你编的ffmpeg库给我发一份
      

  4.   

    从FFMPEG提取一个DECODER然后用NDK编译.SO,JAVA通过JNI来调用。 只能这么做,而且移植并不困难
      

  5.   

    在jni层做socket连接,实时传输数据,在app中用播放器播放。至于解码,如果android集成的解码器可以播放最好,否则只能在jni拿到数据自己完成解码。