video player inside

137 views
Skip to first unread message

Chesco Porcel

unread,
Jan 27, 2010, 8:00:06 PM1/27/10
to BigBlueButton-dev
Hi folks,

Are there some way for implement a video player in ?
Thanks,

Regards

Denis Zgonjanin

unread,
Jan 27, 2010, 8:15:14 PM1/27/10
to bigblueb...@googlegroups.com
You can implement a youtube video player using this:
http://code.google.com/apis/youtube/flash_api_reference.html

I've tried it and it works well.
For a more generic video player you'd have to also implement a way to upload videos to the server. You could do this the same way presentations are uploaded. Playing videos from the server should be easy using red5.

The challenge is syncing the video experience across all the clients. Ideally you want everybody to be viewing videos in sync, so the presenter can provide voice over, use the pointer feature, etc... Since people have different internet speeds, the video would play/buffer at different times for everybody, so this is your main challenge.

There's an issue for this already by the way:
http://code.google.com/p/bigbluebutton/issues/detail?id=218
So we plan to implement it, but there are quite a few more important things to do, so you can expect it but not soon.

- Denis


--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/bigbluebutton-dev?hl=en.


Walter Tak

unread,
Jan 27, 2010, 8:36:25 PM1/27/10
to bigblueb...@googlegroups.com
Hey Denis,
 
the addition of video would be nice and here is some constructive feedback, perhaps an open door.
 
Server would broadcast the stream to everyone.
 
Every player reports every x seconds his local playhead (progress of the video in seconds) to the server.
 
If one of the clients seems to lag the server will send a "pause" to all other clients.
 
Slow client catches up on the video (buffering etc) and keeps sending updates of his playhead to the server. As soon as the playhead is newer than the timestamp at which the video was paused for the other clients , the server will send an "unpause" command to the other clients. From this moment everyone is in sync again.
 
This ways the pace of playback will be matched with the slowest client.
 
Under ideal circumstances there will be near zero pausing. If one client is on a very slow line it will be a nightmare for everyone but in the end the movie finishes at the same timestamp which is what you want. After such an experience the slowest client will probably upgrade his connection or the one that uploaded the video will try to reduce it's size/quality next time.
 
W.

Denis Zgonjanin

unread,
Jan 27, 2010, 9:02:10 PM1/27/10
to bigblueb...@googlegroups.com
Hi Walter,

Good ideas, but I'd like to relly on the system itself to figure out the best user experience for everyone instead of the presenter/viewers having to play trial and error to get it right. After all, many users could be in remote areas or third world countries with poor connections.

I think a better option would be for the presenter to 'cue' the video, so everybody starts downloading it in the background. Then when the download is complete for everyone the presenter could be notified and start playing. As you suggested each viewer could send a periodic update to the server to make sure everyone is in sync. The downside of this whole approach is that there's a considerable wait time for the video to first load. This would work very well for small videos I think (<5min).

Also, we'd need a way for the presenter to upload a video before the conference starts. That way the video is already on the server and can be streamed immediately.

- Denis

Jeremy Thomerson

unread,
Jan 27, 2010, 9:16:05 PM1/27/10
to bigblueb...@googlegroups.com
I agree with this approach.  The presenter could even join early and upload videos before everyone joins so that as soon as they join, they start downloading. 

JT

Walter Tak

unread,
Jan 28, 2010, 1:51:15 PM1/28/10
to bigblueb...@googlegroups.com
Ah I was assuming that you wanted to stream the video instead of a progressive download.
 
Wouldn't the download interfere with the incoming video and audiopackets and eventually disconnect the user ?
 
Unless you'd be able to limit the rate of download per client.
 
I actually wrote a downloader POC via RTMP (Red5) for AS3 once. That piece of code
would read in a file to transmit to users from disk, cut it into blocks of say 32 Kbytes and send them over RTMP to the client. When all packets
were received well at the client AS3 would transform the bytearray into an object (video in this case) and the video could be played.
 
The interesting thing is that you can throttle the speed at which blocks are being send to the client. E.g. max 1 block of 32 Kbytes per 0.1 second (e.g. max 320 Kbytes effectively). It's quite challenging for the server though. Alternatives are mods for Apache which limit the download-speed per connection/IP or a traffic-shaper (token-bucket) on OS-level (with iptables etc).
 
Regards,
Walter

Chesco Porcel

unread,
Jan 28, 2010, 6:32:20 PM1/28/10
to BigBlueButton-dev
Amazing... thank you all
I hope for the next release or more, because my level is not here...
thank you again !


On Jan 28, 7:51 pm, "Walter Tak" <wal...@waltertak.com> wrote:
> Ah I was assuming that you wanted to stream the video instead of a progressive download.
>
> Wouldn't the download interfere with the incoming video and audiopackets and eventually disconnect the user ?
>
> Unless you'd be able to limit the rate of download per client.
>
> I actually wrote a downloader POC via RTMP (Red5) for AS3 once. That piece of code
> would read in a file to transmit to users from disk, cut it into blocks of say 32 Kbytes and send them over RTMP to the client. When all packets
> were received well at the client AS3 would transform the bytearray into an object (video in this case) and the video could be played.
>
> The interesting thing is that you can throttle the speed at which blocks are being send to the client. E.g. max 1 block of 32 Kbytes per 0.1 second (e.g. max 320 Kbytes effectively). It's quite challenging for the server though. Alternatives are mods for Apache which limit the download-speed per connection/IP or a traffic-shaper (token-bucket) on OS-level (with iptables etc).
>
> Regards,
> Walter
>
>   ----- Original Message -----
>   From: Jeremy Thomerson
>   To: bigblueb...@googlegroups.com
>   Sent: Thursday, 28 January 2010 03:16
>   Subject: Re: [bigbluebutton-dev] video player inside
>
>   I agree with this approach.  The presenter could even join early and upload videos before everyone joins so that as soon as they join, they start downloading.  
>
>   JT
>

>         On Wed, Jan 27, 2010 at 8:00 PM, Chesco Porcel <cesco...@gmail.com> wrote:
>
>           Hi folks,
>
>           Are there some way for implement a video player in ?
>           Thanks,
>
>           Regards
>
>           --
>           You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
>           To post to this group, send email to bigblueb...@googlegroups.com.
>           To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

>           For more options, visit this group athttp://groups.google.com/group/bigbluebutton-dev?hl=en.


>
>         --
>
>         You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
>         To post to this group, send email to bigblueb...@googlegroups.com.
>         To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

>         For more options, visit this group athttp://groups.google.com/group/bigbluebutton-dev?hl=en.


>
>       --
>
>       You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
>       To post to this group, send email to bigblueb...@googlegroups.com.
>       To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

>       For more options, visit this group athttp://groups.google.com/group/bigbluebutton-dev?hl=en.


>
>     --
>
>     You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
>     To post to this group, send email to bigblueb...@googlegroups.com.
>     To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

>     For more options, visit this group athttp://groups.google.com/group/bigbluebutton-dev?hl=en.

Joseph Orlando

unread,
May 18, 2013, 1:37:26 PM5/18/13
to bigblueb...@googlegroups.com, cesc...@gmail.com
I know this is a VERY old thread but...


Once presenter hits play or share it begins to play in the presentation module for all clients. Then once the presenter's video has ended and/or the clients as well, check for any stragglers. If any clients have still not finished video, have a dialog or text that says `waiting for other clients`, etc. Until all videos finish, or after a certain timeout.
Reply all
Reply to author
Forward
0 new messages