我在C.上使用ffmpeg和sdl编写实时网络摄像头流 我的平台是linux。
我的应用程序是基于客户端的服务器。
客户端正在从网络摄像头读取,生成AVPacket,然后发送到服务器。
我的问题是,AVPacket结构有一个名为data的成员,大约是600k
起初,我没有检查send()返回值,
所以,当然数据包未能完全发送。
但是在我检查之后,send()在大数据包的第二次迭代时返回Bad Address错误。
数据包的长度必须正确,因为它是从AVPacket结构提供的。
它之前发送了2个AVPacket成员,因此服务器已启动并正常运行。
有问题的部分:
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;
}
任何人都有任何想法为什么它不起作用?
先谢谢!
答案 0 :(得分:0)
好的,我明白了。
问题在于AVPacket。