10-Sep-2009 (Thu)
Wherein the webcast levels up.

The Justin.TV guys gave me some tips on how to improve the video quality of the webcast, so it should be looking and sounding a lot better now... Let me know! There's no audio at the moment, since we're not open until Friday night, but the picture looks a lot better to me. You should now be receiving H.264 at 480x360, 15 FPS, at somewhere in the neighborhood of 500kbps. I suppose it's possible that that's too high bandwidth for some people? I no longer know what's common here in This Modern World.

Rather than using the video encoder built in to the Flash plugin, I'm using Flash Media Live Encoder 4, which has a lot better options, and (bonus!) can be run from the command line, making it easy to automate.

7 Responses:

  1. bifrosty2k says:

    I like Justin.tv, they’re my colo neighbor. This just makes their coolness++

  2. mark242 says:

    Undoubtably this is because of the low light, but if you bumped up the noise reduction a touch and turned on deinterlacing you’d probably get an even better encode (depending on your available CPU).

    • jwz says:

      Yesterday I had both input size and output size set to 480×360, and with that input size, the de-interlace checkbox is grayed out (I guess it assumes the DV device is doing the de-interlacing when it scales in hardware?) I just changed it to have input 640×480, deinterlacing on; output size 480×360. I guess it looks a little less grainy? It’s hard to tell. Presumably it’s using more CPU now.

      There doesn’t seem to be a setting for noise reduction.

      • mark242 says:

        You’ll notice the deinterlacing most when there’s motion on the stream– like you said, hard to tell right now, but take for example someone walking down the sidewalk outside, the motion is crisper, and no telltale jagged-line-action from the interlacing.

        That’s too bad about the noise reduction; that’s the number one issue with encode quality most of the time. Instead of the encoder having to pump out 200kbps of pixels that only change because of noise in the video, you could get much higher quality on the parts of the signal that are actually changing.

        • jwz says:

          It sure doesn’t seem like it’s getting 15fps. Feels more like 8.

          • mark242 says:

            It does seem to be stuttering at times, but that could be any number of things. Do vmstat or iostat look like they’re out of control? Is the connection saturated? Are you setting the packets coming from the encoder as high priority (and does your router behave with high priority packets)? Are the justin.tv servers just hiccuping? Short of doing entirely too much low-level debugging, it’d be hard to nail down one cause of frame drops.

            • jwz says:

              Blah, I only barely remember how to begin finding answers to those questions. It’s been ages since I had to think about my pf.conf rules. Fuck it.