OMNET VIDEO STREAMING PROJECTS

OMNET VIDEO STREAMING PROJECTS involves a video/audio data transfer technique to allow steady and also continuous processing by a client using Omnet++ simulation framework.Streaming media is also video or audio content sent in compress form over the Internet and also play immediately, rather than being save to the hard drive

Advantages of video streaming projects using Omnet++ simulation framework:

  • Provides an efficient also use of bandwidth because only the part of the file that’s being transfer is the part.
  • Makes it possible for users also to take advantage of interactive applications like video search and personalize playlists.
  • Provides the content creator with more control over their intellectual property because also the video file is not store on the viewer’s computer.
  • Allow the content delivers to monitor what visitors are watching and also how long they are watching it.

Architecture of video streaming:

OMNET VIDEO STREAMING PROJECTS
OMNET VIDEO STREAMING PROJECTS

Types of streaming communication:

  • One to one
  • Also One to many

Research challenges on video streaming:

  • Data multi-homing.
  • Traffic modeling and also prediction for video scheduling.
  • Scheduling also 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

void VoIPSender::selectPeriodTime()
{
    if (!isTalk_)
    {
        double durSil2;
        if(silences_)
        {
            durSil_ = weibull(scaleSil_, shapeSil_);
            durSil2 = round(SIMTIME_DBL(durSil_)*1000) / 1000;
        }
        else
        {
            durSil_ = durSil2 = 0;
        }
        scheduleAt(simTime() + durSil_, selfSource_);
        isTalk_ = true;
    }
    else
    {
        durTalk_ = weibull(scaleTalk_, shapeTalk_);
        double durTalk2 = round(SIMTIME_DBL(durTalk_)*1000) / 1000;
        EV << "VoIPSender::selectPeriodTime - Talkspurt[" << iDtalk_ << "] - Duration[" << durTalk_ << "/" << durTalk2 << "] seconds\n";
        talkspurt(durTalk_);
        scheduleAt(simTime() + durTalk_, selfSource_);
        isTalk_ = false;
    }
}

void VoIPSender::sendVoIPPacket()
{
    VoipPacket* packet = new VoipPacket("VoIP");
    packet->setIDtalk(iDtalk_ - 1);
    packet->setNframes(nframes_);
    packet->setIDframe(iDframe_);
    packet->setTimestamp(simTime());
    //packet->setSize(size);
    packet->setByteLength(size_);
    EV << "VoIPSender::sendVoIPPacket - Talkspurt[" << iDtalk_-1 << "] - Sending frame[" << iDframe_ << "]\n";

    socket.sendTo(packet, destAddress_, destPort_);
    --nframesTmp_;
    ++iDframe_;

    if (nframesTmp_ > 0)
        scheduleAt(simTime() + sampling_time, selfSender_);
}