Order Now AdSolution Sign Up | Login » Bits on the Run Sign Up | Login »

Forums

/

Mid-roll ads problem or misunderstanding

30 replies [Last post]
Reply

Well got OVA working all the way around and even made own custom VAST server, but there is some kind of problem with mid-roll video ads.

Lets say we have a video - video.mp4 (more then 60 seconds length) with the midroll ad.flv.
Starttime for the mid-roll is 15 seconds and the midroll itself is 5 seconds or whatever.

well after the first 15 seconds of playing the mid-roll fired and played
!!! but after the midroll is done then the main video started once again from the beginning.
This is not logical at all.

The same bug I can see at all demos and examples at OVA, I also can't find any additional information about this at OVA documentation or forums.

Any advice or explanation about this?

Reply

Hi,

Mid-rolls have been difficult to implement.

So a couple of questions to get more understanding:

1. Are you using the JW or Flowplayer versions of OVA?

2. Are you using HTTP Progressive download or HTTP pseudo-streaming for your show stream?

If you are using the JW OVA plugins and require mid-roll support, HTTP pseudo-streaming is required to ensure that the show can "resume" playback at the point in time that the ad started.

This example illustrates it well - a pre, mid and post roll are played over a pseudo-streamed show stream.

http://www.longtailvideo.com/support/open-video-ads/ova-for-jw-player-5/13673/1-stream-with-a-pre-mi...

A lighttpd streaming server is used for the show stream.

The equivalent Flowplayer example can be found here:

http://www.longtailvideo.com/support/open-video-ads/ova-for-flowplayer/13398/1-stream-with-a-pre-mid...

At present, mid-rolls are best implemented via the Flowplayer OVA plugin as it inserts the mid-rolls 'instream' via the Flowplayer instream API rather than splicing the show into segments and inserting the mid-rolls as ads in between. As a result, the show stream for Flowplayer based mid-rolls can simply be a HTTP download stream.

Happy to provide more direct help on this - if you need too, just email me at enquiries@openvideoads.org.

Paul.

Reply

Dear Paul Schulz,

Thank you for your reply.

1. I'm using OVA for JW player
2. This is progressive download and not streaming.

Now I understand what the problem is and it is really seems that there is no any technical solution to run mid-roll ads with progressively downloaded video files, unless you use some kind of pseudo-player instance for playing ads only.

Dan

Reply

Hi,

Well almost, but not completely correct.

For the JW OVA plugin, to play mid-rolls, the pseudo-streaming server is required for the show stream, not the ads. The ads can be straight HTTP download. The pseudo-streaming is required to ensure that the part of the stream after the mid-roll can start at a given point in time, so a streaming solution that allows that is required.

For the Flowplayer OVA plugin it's a different story - mid-rolls will work on straight HTTP progressive download show streams...

Paul.

Reply

How can OVA(coming from longtail) work better with an outside product(flowplayer) than your own(jwplayer)?

To have a midroll ad(probably the most successful form of video ad) i need to have pseudo-streaming(done) and to split the movie. What kind of solution is that?

With few exceptions you guys are doing a great work. But from time to time i get dumbstruck reading the solutions you come up with.

Reply

Hi... I hear you on this. It's a fair comment about the mid-roll implementation. There are historical reasons for why it's been that way.

But we're working to improve the implementation so that it's a smooth mid-roll transition that doesn't require the stream splicing. You'll see the results of this in the next release or two...

Paul.

Reply

Are there any news about mid-roll implementation for streams without splitting the movie. For us it looks a little confusing if the duration of each part of the movie is shown in the timeline and not the total time!? Or is there any other way to show the total time!?
For us this would be a "must have" to take OVA.

Reply

Hi Walter - are you using JW or Flowplayer?

The reason I ask is because he OVA for Flowplayer implementation doesn't split the streams, but the JW player version still does.

Unfortunately right now I don't have a timeline on an implementation for JW that doesn't split the streams - my guess is that it's probably about 2-3 months away...

Paul

Reply

Hi Paul!

We're using JW Player and testing OVA for our current project "advertised VoD". We are not shure if the user might be confused if the timeline shows e.g. 30min which is the time to the next ad.
As for security reasons we need to deliver the movie via RTMPe and a secured file url. So there is no way to use pseudo streaming.

Walter

Reply

Just bumping this. I'd like to be able to run a mid-roll ad with some sort of indicator that's displayed in the timeline showing where the mid-roll is shown. Right now, the host video is split: Before the mid-roll, it appears that the video is only as long as the segment before the mid-roll; But after the mid-roll occurs, the entire timeline is shown and the position indicator shows that it is after that time when the mid-roll happens.

Reply

Hi Ben,

Yeh, unfortunately that's how it works at the moment for the JW Player implementation... the segment before the mid-roll has a duration set as long as the time it takes to get to the mid-roll, then the segment after the mid-roll has the entire duration of the clip but a start time set at the point that the mid-roll plays.

Honestly, the mid-roll implementation for JW at present isn't great. It needs to be more "instream" - we are working on this.

The Flowplayer OVA implementation is instream and as such plays more seamlessly with the clip duration always showing the correct length.

On the indicator point, that's an enhancement that's in our issue log for a future release. Right now, it's not possible. What we plan to do down the track is give you support to implement a custom control bar that supports these types of markers with OVA, but that's not a short term solution for you unfortunately.

So a little bad news on both counts at the moment - sorry about that.

The request is registered and we intend to work on both...

Paul

Reply

This post has been dead since April, is there any update on when in-stream mid-roll is going to be part of a JW Player release.

I'm using OAS from Real Media to deliver pre roll ads at the moment but i'm being asked about delivering mid rolls, we currently stream catchup over RTMP, am i right in thinking that when this is released mid-rolls will work with an RTMP stream?

Reply

Hi Colin,

At this stage, it looks like mid-fall.

I'll be looking to get a version of OVA for JW supporting mid-rolls via the Instream API as that new version of JW release hits the street.

I expect that it will work with RTMP streams - I'll make sure to build a test case around that.

Paul

Reply

I just built a system dependent on mid-rolls. The system not only requires mid-rolls, but numerous mid-rolls across a scheduled playlist for TV using OVA, OpenX and scheduling software. We now will have to buy commercial license and OVA for Flow player instead. We purchase commercial licenses for JW already. I am really disappointed. And will have to take this news back to my bosses. That it does not work without more money, and shifting tools. This post is the only place I have found that it does not work. No where in the documentation does it say. This does not work. Mid-rolls not supported. But instead it is filled with examples. This is really a sad move JW. We are using RTMP streaming servers for our application. Thank you.

Reply

Hi,

Ok - I'm trying to understand the underlying issue here.

Mid-rolls are supported in OVA for JW5, they are just "messy" until JW supports "instream" insertion of clips on a parent clip (which Flowplayer currently supports). For that reason, it is true to say that mid-rolls do work more effectively for Flowplayer than JW at present.

These two examples illustrate the differences between the OVA for JW and OVA for Flowplayer implementations (both are RTMP examples):

OVA for JW5 RTMP pre, mid and post rolls:

http://static.openvideoads.org/qa/latest/ova.jwplayer.5x/examples/pages/ad-formats/rtmp/example05.ht...

OVA for Flowplayer RTMP pre, mid and post rolls:

http://static.openvideoads.org/qa/latest/ova.flowplayer/examples/ad-formats/rtmp/example05.html

So when you say "it doesn't work" - can you help me understand what is not working for you?

What version of OVA for JW5 are you running?

One restriction on the OVA for JW5 implementation at present is that the show streams need to have a defined duration to allow them to be "spliced" to insert the mid-rolls.

Feel free to share your config and I'll look into any issues that you may be experiencing.

In addition, if you need to switch from an OVA for JW license to an OVA for Flowplayer license, please contact us and we'll look to switch that the OVA licenses for you so that you are not hit with any additional OVA cost to change implementations. Point to this forum post when contacting us so that there is a reference to the issue.

Hope this helps,

Paul

Reply

Running the latest version of JW, and OVA. Purchased both this year. And downloaded the latest update. I will try again. And post my results. Thank you for your quick response. If I cannot get it to work I will post my config and version numbers. Thank you.

Reply

Ok - great.

Just a heads up - if you prefer to email me the URLs etc (just in case you don't want to publicly post them), feel free to email me at enquiries@openvideoads.org.

I'm on a London timezone this week and it's quite late here now so signing off for the night but I'll happily pick up in the morning early and help.

Paul

Reply

BTW, I do not see an example in the code of the splicing you are discussing. The example looks just like most using JW. We are not doing a companion ad in our case. I am testing on a single MP4, H.264 encoded, on a Wowza server with streaming seeking "enhanced", for improved seconds specifications. I do not see "duration" in your example code for the commercials or for the clip. I can pass both if needed. I am using OpenX 2.8.7. Duration is specified in the Video ad.

Reply

<ova.json>
{
"autoPlay": false,
"ads": {
"servers": [
{
"type": "OpenX",
"apiAddress": "http://MYSERVER.TV/adserver/www/delivery/fc.php"
}
],
"notice": { "textStyle": "smalltext","type": "countdown" },
"schedule": [

{
"zone": "4",
"position": "mid-roll",
"startTime": "00:00:10",
"playOnce": true
}
],
},

"debug": {
"debugger": "firebug",
"levels":"fatal, config, vast_template, vpaid, http_calls, tracking_events, playlist, api"
}
}
</ova.json>

Reply

Well I am glad to report that it does work. I stared at your code, and thought maybe the free version, and the commercial SWF are different. So I setup a test with the latest free version, and the <object> embed method, and it worked. Then I pointed to my commercial SWF from the same code, and it worked again. So it does work.

What does not work is the WP plugin pointing to the commercial version SWF (I am sure it is the only SWF in use). And all other flash vars defined in the short code. Since WordPress does not like the HTML for the embed code. I will have to see if there is a work around. Here is what is not working.

[jwplayer config="MYJWPLAYERCONFIG_V1.4" file="mp4:amazons3/MYAMAZONSERVER/programs/MYFILE.m4v" streamer="rtmp://MYWOWZASERVER/vods3" provider="rtmp" plugins="http://MYWEBSERVER/ova/ova.swf" icons="false"]

<config>
<icons>true</icons>
<playlist>none</playlist>
<playlistsize>180</playlistsize>
<repeat>none</repeat>
<shuffle>false</shuffle>
<bufferlength>3</bufferlength>
<smoothing>true</smoothing>
<stretching>uniform</stretching>
<mute>false</mute>
<volume>90</volume>
<controlbar>over</controlbar>
<dock>false</dock>
<autostart>false</autostart>
<height>320</height>
<width>480</width>
<plugins>fbit-1</plugins>
<ova.json>
{
"autoPlay": false,
"ads": {
"servers": [
{
"type": "OpenX",
"apiAddress": "http://MYADSERVER/adserver/www/delivery/fc.php"
}
],
"notice": { "textStyle": "smalltext","type": "countdown" },
"schedule": [

{
"zone": "4",
"position": "mid-roll",
"startTime": "00:00:10",
"playOnce": true
}
],
},

"debug": {
"debugger": "firebug",
"levels":"fatal, config, vast_template, vpaid, http_calls, tracking_events, playlist, api"
}
}
</ova.json>
<fbit.link>true</fbit.link>
<wmode>opaque</wmode>
</config>

Reply

Hi,

I'm not sure if this helps or not, but here are some thoughts.

1) While I'm not a wordpress expert, from what I understand, when you setup your player, a config file is created. Ultimately, the OVA config is placed into there and you can modify that config file directly to sort out your issues.

2) So on my Wordpress instance (http://www.openvideoads.org/wordpress), I did the following to make it work:

a) Edit the config file that is created for the player instance. In the case of the second player on my home page, the config file is:

http://www.openvideoads.org/wordpress/wp-content/uploads/jw-player-plugin-for-wordpress/configs/Sean Player.xml

b) If you look at that config file, you'll see a <plugins> tag set. Just change the OVA plugin reference to your hosted URL. In my case I've specified:

<plugins>
http://static.openvideoads.org/qa/latest/ova.jwplayer.5x/dist/swf/ova.swf
</plugins>

c) Optional: Instead of putting in a fully encoded JSON string, you can just specify the OVA config in it's native JSON format if you are editing that config file. So if you look at my full config file for that player instance on the page, you'll see:

<config>
<controlbar>bottom</controlbar>
<dock>false</dock>
<autostart>false</autostart>
<height>280</height>
<width>400</width>
<plugins>http://static.openvideoads.org/qa/latest/ova.jwplayer.5x/dist/swf/ova.swf</plugins>
<ova.json>
{
   "debug": {
       "debugger": "firebug", "levels": "fatal, config, vast_template, vpaid, http_calls, tracking_events, playlist, api"
   },
   "ads": {
       "playOnce": false,
       "servers": [
            {
                 "type": "OpenX",
                 "apiAddress": "http://openx.openvideoads.org/openx/www/delivery/fc.php"
            }
        ],
        "schedule": [
            {
                 "zone": "5",
                 "position": "pre-roll"
            }
        ]
     }
  }
}
</ova.json>
</config>

This is a lot easier to read than the encoded format.

Anyway, hope this helps.

Paul

Reply

That is the way I have mine setup, but with the change of not having the plugin defined in the config but in the short code. I tried it the way you have yours. And prerolls again work, but mid-rolls do not. Can you try it on yours with a mid-roll. I will be trying other approaches as well.

Thanks for the help on this.

Reply

Hi,

I've setup the mid-roll example on my wordpress demo site:

See "Sean's Test" on the home pag:

http://static.openvideoads.org/wordpress/

Mid-roll starts 10 seconds into the show clip.

After the mid-roll the show starts again from the beginning because it's setup as a HTTP download, not a pseudo or RTMP stream - that's just laziness on my side as I didn't have time to reconfigure the media type. For mid-rolls to work, the media needs to be either RTMP or HTTP pseudo-streaming.

Anyway, that aside, I'm 100% sure the problem you are experiencing is that you haven't set a "duration" on the show clip. OVA will only configure mid-rolls if you have a duration configured.

Just ad the following into your config.xml file:

<duration>60</duration>

with the right duration.

See my config file:

http://www.openvideoads.org/wordpress/wp-content/uploads/jw-player-plugin-for-wordpress/configs/Sean Player.xml

Paul

Reply

Closer now, these are 30, 60 minute broadcasts that we are trying to insert the commercials for.

On the <object> tag approach with "playOnce": false, the first midroll is played, but the next is skipped. (Normally on real TV there is 2-6 commercials during the break). But I am getting the first mid-roll, it skips the next midrolls set on the same insertion point. Continues on the stream, then plays the next midrool at a later time. Here is what I need to work. I have tried wit the same zone for all and 2 different zones with duplicated content and setup. Any ideas?

...
<duration>1440</duration>
<plugins>http://MYWEBSERVER/ova/ova.swf</plugins>
<ova.json>
       {
            "autoPlay": false,
            "ads": {
                "servers": [
                    {
                        "type": "OpenX",
                        "apiAddress": "http://MYADSERVER/adserver/www/delivery/fc.php"
                    }
                ],
                "notice": { "textStyle": "smalltext","type": "countdown" },
                "schedule": [
                    {
                        "zone": "4",
                        "position": "pre-roll",
             "playOnce": false
                    },
                    {
                        "zone": "4",
                        "position": "pre-roll",
             "playOnce": false
                    },
                   
                   
                    {
                       "zone": "4",
                       "position": "mid-roll",
                       "startTime": "00:08:00",
                       "playOnce": false
                    },
                    {
                       "zone": "10",
                       "position": "mid-roll",
                       "startTime": "00:08:00",
                       "playOnce": false
                    },
                                    
                   
                    {
                       "zone": "4",
                       "position": "mid-roll",
                       "startTime": "00:16:00",
                       "playOnce": false
                    },
                    {
                       "zone": "10",
                       "position": "mid-roll",
                       "startTime": "00:16:00",
                       "playOnce": false
                    }
                ],
            },

            "debug": {
               "levels": "fatal, config, vast_template",
               "debugger": "firebug"
            }
        }
        </ova.json>

Reply

Couple of things:

1) Remove "playOnce" - that's not needed

2) You can't insert multiple mid-rolls to be played like that at the same time. What you could try is:

{
    "zone": "4",
    "position": "mid-roll",
    "startTime": "00:08:00",
    "repeat": 2
}

But you'll need to configure multiple ad items to be served in the 1 zone.

The "repeat" option tells OVA to repeat the specified number of ad slots at that position in the ad schedule.

Paul

Reply

Perfect!

Thank you. And great job. It is working just as it should. Please include a link to where I would find that in the documentation, I prefer reading 30 minutes, than beating my head against a wall for 2 hours.

Thank you.

Reply

Hi Paul,

One restriction on the OVA for JW5 implementation at present is that the show streams need to have a defined duration to allow them to be "spliced" to insert the mid-rolls.

When do you think you can fix this?

Thanks,
Marius

Reply

Hi Marius,

The change to the "mid-roll" approach in OVA for JW player requires the implementation of a new API in JW Player called "instream API" - this will allow streams to be played "mid-stream" by the player.

At present, this player change appears to be slated for release in fall this year, so right now, I at present, expect the OVA update to use this API for mid-rolls to come out around the same time (say late November) ...

Paul

Reply

Hi Paul,

thanks for the information.

Marius

Reply

Hi guys,

I'm wondering when this is going to be fixed. Do you have another estimated date for the stream-splicing fix?

Reply

Hi,

It's likely to be late Q1/early Q2 - it's a major rewrite of OVA and is now on the schedule given that JW 5.9 is now available.

How about you contact me directly via "enquiries@openvideoads.org" - We can keep you more up to date as development proceeds that way...

Paul

Post new comment

  • Allowed HTML tags: <code> <blockquote> <em> <strong> <strike> <ul> <li> <ol>
  • You may post code using <code>...</code> .
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options