Video streaming projects inolves a video/audio data transfer technique to allow steady and continuous processing by a client using Omnet++ simulation framework.Streaming media is video or audio content sent in compressed form over the Internet and played immediately, rather than being saved to the hard drive
Advantages of video streaming projects using Omnet++ simulation framework:
- Provides an efficient use of bandwidth because only the part of the file that’s being transferred is the part.
- Makes it possible for users to take advantage of interactive applications like video search and personalized playlists.
- Provides the content creator with more control over their intellectual property because the video file is not stored on the viewer’s computer.
- Allow the content delivers to monitor what visitors are watching and how long they are watching it.
Architecture of video streaming:
Types of streaming communication:
- One to one
- One to many
Research challenges on video streaming:
- Data multi-homing.
- Traffic modeling and prediction for video scheduling.
- Scheduling for video streaming.
- User mobility.
- Wireless loss and error differentiation etc.
Output Video of Video streaming Projects using Omnet++ simulation Framework.
Sample Program of Omnet++ Video streaming Projects
durSil_ = weibull(scaleSil_, shapeSil_);
durSil2 = round(SIMTIME_DBL(durSil_)*1000) / 1000;
durSil_ = durSil2 = 0;
scheduleAt(simTime() + durSil_, selfSource_);
isTalk_ = true;
durTalk_ = weibull(scaleTalk_, shapeTalk_);
double durTalk2 = round(SIMTIME_DBL(durTalk_)*1000) / 1000;
EV << "VoIPSender::selectPeriodTime - Talkspurt[" << iDtalk_ << "] - Duration[" << durTalk_ << "/" << durTalk2 << "] seconds\n";
scheduleAt(simTime() + durTalk_, selfSource_);
isTalk_ = false;
VoipPacket* packet = new VoipPacket("VoIP");
packet->setIDtalk(iDtalk_ - 1);
EV << "VoIPSender::sendVoIPPacket - Talkspurt[" << iDtalk_-1 << "] - Sending frame[" << iDframe_ << "]\n";
socket.sendTo(packet, destAddress_, destPort_);
if (nframesTmp_ > 0)
scheduleAt(simTime() + sampling_time, selfSender_);