First of all congratulations on this excellent project. I've been
digging into its code for the last 2 days, I'm focusing on video for
now.
I have my dev environment(VM, using latest code from svn) set as well
as a small instance running it on at ec2(apt-get install...).
So, I work for an education web site where high-school and college
animation students post their work and get feedback from peers and
from industry professionals. The site promotes web conferences where a
teacher and his classroom interacts with a pro(currently they are
using an expensive commercial software).
There are just a couple cameras at the class room and another couple
at the pro's side. Bandwidth is not a problem, I'm trying to increase
the video quality because it's important for us since the pro draws
stuff in front of the camera so video quality really matters, there is
a lot of movement going on and the blocky video did not please my
bosses.
After searching a bit I was able to increase quality by editing those
lines at PublishWindow.mxml:
camera.setKeyFrameInterval(1);
camera.setMode(camWidth,camHeight,15);
camera.setQuality(0,90);
Big differential here is setQuality passing 90 for quality, now it's
not blocky anymore.
I know the default for bandwidth was already 0 which means as much as
it can use.
Thing is, when I do this, the video gets kinda slow(really slow if I
use 100 for quality), and I noticed that my clients(I'm testing at my
lan using my 2 laptops and my desktop) upstream never goes much over
120 kilobytes/second, no matter what settings I use.
From what I read bbb does not limit bandwidth anywhere, or does it?
I thought maybe red5 was limiting it, I've been pulling out my hair
trying to find where could it be done.
I found this on a red5-common.xml:
<!-- Limits bandwidth (bytes per second) related with read and write
operations on a per-session basis -->
<bean id="bandwidthFilter"
class="org.red5.server.net.filter.TrafficShapingFilter"
scope="prototype">
<!-- Maximum read throughput (0 = Unlimited) -->
<constructor-arg index="0" value="0"/>
<!-- Maximum write throughput (0 = Unlimited) -->
<constructor-arg index="1" value="512000"/>
</bean>
But it seems to be only for the latests versions of red5, the version
that gets installed with apt-get does not seem to have this option, so
I got the latest from svn, built it and installed it, but now bbb
stopped working, it's failing here(MainApplicationShellMediator.as):
if (portTestResult["protocol"] == "RTMP") {
testRTMPTConnection()
} else {
shell.statusProgress.text = "Sorry, we cannot connect to the
server.";
}
The value of portTestResult["protocol"] is "RTMPT", odd since I
commented out RTMPT from red5-common.xml.
I know there's a chance that has nothing to do with red5, but since I
went through the trouble of trying this things I thought I should just
post them here as well.
Anyway, the big question is: where is my upload being limited and how
can I raise it.
Thanks in advance,
Paul
--
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.
Quick comment ... we'll be upgrading to red5 0.9.0 for BigBlueButton
0.64 (the current iteration now in progress).
I'll let others respond with some more technical details on the video
options.
Regards,... Fred
I did notice before that one of my cameras provided better results
than the others, but bandwidth still seemed limited.
Now I know that only my knowledge was limited :)
Anyway, thanks again and keep up the good work!
Paul
On Mar 5, 2:58 am, Jeremy Thomerson <jeremythomer...@gmail.com> wrote:
> We're working on giving configurable camera quality settings in this release
> or the next one. In the meantime, here's the settings I've found that make
> for high quality video (albeit at the expense of bandwdith - some cameras
> generating as much as 250k).
>
> I tried probably at least thirty different combos with multiple different
> cameras before settling on these:
>
> If you're using 320x240:
> Max BW: 56000
> Quality: 90
> Frames per second: 30
>
> If you're using 640x480:
> Max BW: 0
> Quality: 90
> Frames per second: 30
>
> So, that would look like this:
> // I don't set the key frame rate - I let Flash decide - it improves the
> quality
> //camera.setKeyFrameInterval(30);
> camera.setMode(camWidth, camHeight, 30, false);
> camera.setQuality(56000, 90); // or 0 rather than 56000 for a larger camera
>
> Hope this helps.
>
> Jeremy Thomersonhttp://genericconf.com
> > bigbluebutton-...@googlegroups.com<bigbluebutton-dev%2Bunsubscr i...@googlegroups.com>
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
you'll also see major differences in quality at the upper scale of that
quality property ; you might see a difference between 90 and 95 but each
frame saved at 95% quality will eat more bandwidth and thus lower the
framerate.
Your remark about each camera having different results is very true ;
currently everyone looks at "webcams" as if they are some sort of generic
car. However there are so many different types of cars each having it's
advantages.
A fuzzy camera will require less bandwidth than a camera that can record
sharp images ; more pixels to send over the line = more bandwidth but also
increased please for the viewer. Some cameras have lenses that can be
adjusted especially if the distance object-camera is short.
And then there is resolution ; it's sometimes better to set the resolution
at 320x240 and increase the quality than to use a 640x480 image at a lower
quality setting, ofcourse unless people need to be able to read the notes.
However regarding the notes ; think of pointing one camera to the drawing
board and let it (no option in BBB yet) use quality 98% , bandwidth 20k,
640x480 or even 1024x768 and only 1 fps. That way every viewer will see a
crisp picture of the drawingboard at a low framerate but it wouldn't cost a
lot of bandwidth neither.
Once we can store camera-based quality/bandwidth/framerate settings this
would be a very viable solution for class-room situations.
Regards,
Walter
Paul
bigbluebutton-...@googlegroups.com.