我正在尝试制作一个应用程序,它将使用TCP或UDP协议通过互联网从Android手机的摄像头流式传输视频 . 我目前能够将一个字节数组从Android手机传输到我的计算机,该计算机正在运行我用C#编写的服务器 . 之前我通过网络发送.jpeg并以30 fps的速度显示它们,但这耗费了太多的带宽 .
首先从摄像机捕获图像的最佳方法是什么?我在看......
onPictureTaken(byte[] data, Camera camera)
要么
onPreviewFrame (byte[] data, Camera camera)
我只对byte []数据感兴趣,然后对其进行编码/压缩,然后通过网络发送 .
其次,我应该如何将这些帧转换为压缩视频,这是一个可以通过网络流式传输的字节数组?我不太关心视频质量,我更关心减少带宽 .
这是我想要做的,但我不需要高质量的视频 . https://code.google.com/p/spydroid-ipcamera/
2 回答
如果您打算使用任何编码器然后用户自己编码数据
或者您可以通过发送rtsp流尝试不同的方法 . SpyDroid是一个非常好的项目,可以了解这种方法 .
如果您担心带宽,也许您应该尝试发送JPEG图像字节数组?由于
data
字节数组是YUV格式,因此's bigger than JPEG one. When running a JPEG compression, you'能够定义它的质量,这会影响发送字节数组的大小 .其中
size
之前被定义为