小弟想实现一个用wifi发视频的程序。
目的:一个手机录制视频,通过wifi把视频数据发给另一个手机。另一个手机播放视频。小弟录制视频用的是MediaRecorder,视频编码方式是h264,音频编码方式是AMR_NB。遇到的问题:1、怎么在录制视频的过程中取数据。
            2、接收到的数据怎么播放。项目紧急,求大神指点android视频wifi数据h264

解决方案 »

  1.   

    MediaRecorder是可以得到视频流的,用RTP封装下,然后WIFI接收端接收解包,并解码.
    以前做过视频通话的项目,具体实现记不清了.....记忆力不行了,
      

  2.   

    先谢谢回答,我在网上找到的用MediaRecorder,还得得到pps,psp,然后在分帧处理什么的,说的太复杂了,看了半天都没看懂。有说取摄像头数据的然后用.x264编码,我想问一下.x264编码怎么弄。
      

  3.   

    用MediaRecorder录制时会实例一个Camera,你需要设置一个setPreviewCallback 这个是用来回调camera录制的视频数据的,格式你可以自己设置默认的是YCbCr_420_SP,当然这个是原始数据,你需要自己移植软编码器,如x264 ,音频使用AudioRecorder 传上来的是原始的PCM数据,这个也需要你用音频编码器编码如AMR_NB,当这些都做好后需要采用rtp协议将这些传到server,当然如果你格式确定不需要中间的协商协议如SIP H323 H324等,直接发对方直接收收到后解码播放就行了。x264 网上搜是开源的编码器,可以得到源码既使用方法,另外如果你对硬解熟悉的话也可以使用机器本身的硬解解析h264和AMR_NB编码及解码,一般手机目前都支持这两种格式
      

  4.   

    我下了一个.so的库,里面有.h264编解码的方法,直接用就行。但是System.loadLibrary("H264Android");总办异常Couldn't load H264Android: findLibrary returned null。.so全名为libH264Android放在lib/armeabi目录下。为什么异常啊,求解
      

  5.   

    库加载成功了,一帧一帧的数据也.h264编码了,但是怎么播放啊?
    现在不搞音频,只关心视频怎么播放。播放其实就是 收到h264数据后先解码,解码后把YUV的数据写到surface view的buffer里面,然后刷新就可以了
      

  6.   

    库加载成功了,一帧一帧的数据也.h264编码了,但是怎么播放啊?
    现在不搞音频,只关心视频怎么播放。播放其实就是 收到h264数据后先解码,解码后把YUV的数据写到surface view的buffer里面,然后刷新就可以了
    哦,谢谢啊。但如果加上音频呢,是否可以音频和视频分开弄呢,还是必须rtp打包呢。