安卓java c++ opencv3.4 视频实时传输

本文介绍了一个使用TCP建立连接,随后通过UDP实时传输JPEG压缩图像帧的安卓项目,以实现视频实时传输和图像追踪识别。作者强调了在处理接收的字节流时释放IPLImage内存的重要性,并提供了C++代码片段。项目利用OpenCV进行图像处理,通过封装类以简化二次开发。
摘要由CSDN通过智能技术生成

安卓java c++ 视频实时传输

要做一个视频实时传输并别图像追踪识别的项目。

本项目先采用TCP建立链接,然后在用UDP实时传输,用压缩图像帧内为JPEG的方式,加快传输速率。

下图是转的。。。

我采用的是第五种方案,为了牺牲了流量(局域网不怕),选了高FPS的。

安卓代码参考的别人的参考这里

public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback, Camera.PreviewCallback {
 
    private final int TCP_PORT = 6666;                  //TCP通讯的端口号
    private final int UDP_PORT = 7777;                  //UDP通讯的端口号
    private final String SERVER_IP = "152.18.10.101";   //服务器端的IP地址
 
    private Camera mCamera;
    private Camera.Size previewSize;            
    private DatagramSocket packetSenderSocket;  //发送图像帧的套接字
    private long lastSendTime;                  //上一次发送图像帧的时间
    private InetAddress serverAddress;          //服务端地址
    private final LinkedList<DatagramPacket> packetList = new LinkedList<>();   
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        final SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
        SurfaceHolder holder = surfaceView.getHolder();
        holder.setKeepScreenOn(true);  
        holder.addCallback(this);
 
        //开启通讯连接线程,连接服务端
        new ConnectThread().start();
    }
 
    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        //获取相机
        if (mCamera == null) {
            mCamera = Camera.open();    //打开后摄像头
            Camera.Parameters parameters = mCamera.getParameters();
            //设置预览图大小
            //注意必须为parameters.getSupportedPreviewSizes()中的长宽,否则会报异常
            parameters.setPreviewSize(960, 544);
            previewSize = parameters.getPreviewSize();
            //设置自动对焦
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
            mCame
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值