我修改了sendto函数所在的live555源代码。
我在sendto函数之后添加了一个多播。
int bytesSent = sendto(socket, (char*)buffer, bufferSize, 0, (struct sockaddr*)&dest, sizeof dest);
//zhouhua add below
if(zhou_init == 0){
zhou_init = 1;
memset(&mcast_addr,0,sizeof(mcast_addr));
mcast_addr.sin_family = AF_INET;
mcast_addr.sin_addr.s_addr = inet_addr("224.0.0.251");
mcast_addr.sin_port = htons(5004);
}
int k = sendto(socket, (char*)buffer, bufferSize,0,(struct sockaddr*)&mcast_addr, sizeof(mcast_addr));
printf("k = %d\n", k);
//zhou end
当我播放rtsp流时它会起作用。当我播放sdp文件时,它会播放多播视频。
但是,在win7上,我无法通过vlc播放器获得任何响应。
而wireshark在win7和ubuntu上获得相同的组播数据。
为什么它不适用于win7?
答案 0 :(得分:0)
我找到了。我应该更改sdp文件。 IP参数应该写在文件末尾。