我目前想到的方案是,Android摄像头--ffmpeg--DDS流媒体服务器--客户端由于androi摄像头可以直接生成mpeg4视频流,可以通过ffmpeg将实时的视频流上传到DDS流媒体服务器上生成.sdp文件,然后客户端可以直接通过rtsp观看直播。这里的问题是:
    在android上移植ffmpeg之后,如何用ffmpeg将摄像头的实时视频流转发到DDS流媒体服务器上并生成.sdp文件?
    网上找了很多资料,基本上都是用ffmpeg直接在linux平台上通过v4L2获取视频转发,命令如下所示:
./ffmpeg -t 10 -f video4linux2 -s 176*144 -r 10 -vpre libx264-hq.ffpreset -i /dev/video0 -vcodec libx264 -f rtp rtp://192.168.1.105:6060 > /tmp/x264.sdp
    那么在android上面,如何将捕获到的视频流直接转发到DDS服务器上呢?

解决方案 »

  1.   

    传送YUV的数据啊 传RGB565有点耗流量
      

  2.   

    楼主可以看看这个类android.hardware.Camera.PreviewCallback里面的onPreviewFrame(byte[] _data, Camera _camera)
    这个 _data就是摄像头返回来的视频数据,你就可以用把这个数据发送出去。
    这个的具体用法楼主可以自己Google下
      

  3.   

    可是怎样把-data接收并且加入到Surfaceview播放啊???
      

  4.   

    传yuv数据,很蛋疼的,yuv是原始数据,不比rgb565小多少……