C 发送大数据包时地址错误
我正在用ffmpeg和sdl在C上编写一个实时网络摄像头流。 我的平台是linux 我的应用程序是基于客户机-服务器的。 客户端从网络摄像头读取数据,生成一个AV数据包,然后发送到服务器 我的问题是,AVPacket结构有一个名为data的成员,大约为600k。 起初,我没有检查发送返回值, 因此,数据包当然无法完全发送 但是在我检查之后,发送在大数据包的第二次迭代中返回了错误的地址错误。 数据包的长度必须正确,因为它是由AVPacket结构提供的 它之前发送了2个AV数据包成员,因此服务器已启动并正常工作 问题部分:C 发送大数据包时地址错误,c,ffmpeg,send,C,Ffmpeg,Send,我正在用ffmpeg和sdl在C上编写一个实时网络摄像头流。 我的平台是linux 我的应用程序是基于客户机-服务器的。 客户端从网络摄像头读取数据,生成一个AV数据包,然后发送到服务器 我的问题是,AVPacket结构有一个名为data的成员,大约为600k。 起初,我没有检查发送返回值, 因此,数据包当然无法完全发送 但是在我检查之后,发送在大数据包的第二次迭代中返回了错误的地址错误。 数据包的长度必须正确,因为它是由AVPacket结构提供的 它之前发送了2个AV数据包成员,因此服务器已启
int send_video_data(video_client_t *client, void* buf, int length)
{
int rc;
while (length > 0)
{
if ((rc = send(client->sockfd, buf, length, 0)) == -1) {
perror("failed sending data to server");
exit(1);
}
length-=rc;
buf+=rc;
}
return 0;
}
有人知道它为什么不起作用吗?
提前感谢 好吧,我想出来了。
问题在于AVP数据包
不知何故,大小不正确,可能是因为beacuse video for linux
所以我对数据包进行解码并重新编码,它现在开始工作了