【问题标题】:How to Transfer NSData in UDP?如何在 UDP 中传输 NSData?
【发布时间】:2012-10-01 06:39:10
【问题描述】:

我一直在开发视频聊天应用程序,我们也为 windows 和 android 开发了相同的应用程序,现在我正在尝试为 IOS 做并在它们之间进行通信。为此,我通过此委托捕获了原始视频数据...

- (void)captureOutput:(AVCaptureOutput *)captureOutput 
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
       fromConnection:(AVCaptureConnection *)connection 

现在我想使用套接字并通过网络传输原始数据。

        UIImage *temp_image = [self getUIImageFromBuffer:sampleBuffer];
        NSData *data = UIImageJPEGRepresentation(temp_image, 1.0);

        const void *bytes = [data bytes];

udp_obj->send_packet((char*)bytes, size, "30.0.0.104", 2030);

其中 udp_obj 是一个 c++ udp 类。

我一直使用这个字节作为原始数据通过 UDP 传输,我在这里做吗?其他端数据包正在接收,但每个数据包看起来都一样,我不确定我是否朝着正确的方向前进。谁能指导我... 谢谢。

【问题讨论】:

  • 看来您走在正确的轨道上,但您必须将代码发布到您实际发送数据的位置。
  • @CarlVeazey 我已经像上面一样发送了,你知道另一端的线鲨正在为我所有的环回调用显示相同类型的数据,这可能吗?
  • data_size = [数据长度];使用这个 data_size 我一次发送 960(size) 个字节,所以 size 最终将是 960,960..... 最小值。
  • 等待数据只有960字节?这不可能是正确的,不适用于压缩的视频帧。编辑:无论如何,基本的想法是你打电话给[NSData bytes],然后发送那个缓冲区(大小为[NSData length]。所以你做的那部分是对的。虽然没有更多的上下文,我不能继续。
  • 没有数据超过 960 字节,但我的 udp 类最多只发送 960 字节,所以我一次完成了 960 字节的打包,它将循环并完成一帧..并将处理下一帧.

标签: ios cocoa-touch udp nsdata avcapturesession


【解决方案1】:

以上代码运行良好。如果有人想通过 UDP 发送原始数据,你可以按照这个。

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多