【发布时间】: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