0
我修改了sendto函數定位的live555源代碼。rtp組播在win7上失敗,但在Ubuntu上成功,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?
你的代碼在哪裏? – zed
只需從http://live555.com/liveMedia/public/下載,關鍵代碼如下: – Zhou
'code'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 'code' @ zed – Zhou