The art of streaming from a party

category: general [glöplog]
Hi all!

I'm not too much into the topic of streaming live video teh Intarwebs - and espcially not when done from say a DVI output from a PC - and especially not if it's to be mixed with a "normal" camera aswell.

So, if any of you out there have any experience in the following stuff, I'm happy to know all about it:

- Splitting a DVI signal from the Compo PC (is it even nescesarry?)
- Encoding the stuff - howto, what's needed? Both hw and sw
- Pitfalls - what are they?

Don't suggest UStream - we'd like to have something better afterall.

It seems like we're ok with the bandwith, networking and hosting - but suggestions here are of course appreciated as well.

Yes, I could probably google this - but this is probably something that someone at some other party has tried out before :)
And yes, we're looking into doing some live streaming from TRSAC (no guaratees, though!) ;)
added on the 2010-09-04 22:44:40 by Puryx Puryx
We're also ok with grabbing the signal, encoding it and avoiding pitfalls :)
added on the 2010-09-04 22:47:03 by leb00ster leb00ster
justin.tv seems better quality than ustream. Maybe that's worth a look if you don't have the bandwidth yourselves.
id say: ask nosfe
added on the 2010-09-04 23:28:50 by gentleman gentleman
puryx: main4 and scenecon streams are working like this

-using dsub instead of dvi
-vga splitter to create 4 same output (beamer,stream,recording,controlscreen)
-for stream converting vga to analog composite with a converter
-using analog composite switch or mixer to combine it with camera
-connecting switch/mixer output to an analog tv card (Leadtek TV2000)
-using windows media encoder to create WMV/WMA stream and sending to relay station (which is a win2k3 server with windows media services and 100mbit bandwidth)
-clients connects to relay station and "enjoy" the party

added on the 2010-09-04 23:39:08 by pasy pasy
early version of MAIN4 beam/stream system:

added on the 2010-09-04 23:46:45 by pasy pasy
We've been using VLC at TG. It's relatively simple, it can run on about any interesting OS, it doesn't require you to pony up tons in license costs, and it can stream to Flash if you want it to. That's not to say there are not annoyances; in particular, the handling of interlaced content is a bit, err, variable between releases.

The only real problem has been source signals that have malformed timing data; seemingly neither VLC nor x264 likes that all that much. In particular, we've been trying to force-feed in webcams etc. with variable success :-) The main stream itself is sent to the encoder as DV, though, which makes for a very easy (but SD) input signal, through dvswitch.

Now, we handle all parts, including distribution (which has sometimes come into gigabit of traffic, if you count internally to the hall), ourselves. If you want to stream through some third-party service, you'd pretty much have to figure out which one to use first; which one you select will pretty much dictate your encoder setup.
added on the 2010-09-05 00:10:11 by Sesse Sesse
added on the 2010-09-05 00:14:52 by Sesse Sesse
Oh, I forgot the part about pitfalls.

The main pitfall is assuming things actually work. If you possibly can, get an entire test stream, from start to end (including a few users), with all the hardware you're going to use, well before the party. Real testing tends to uncover all sorts of weirdnesses about things being incompatible or the client software being crap or the A/V delay being off or the volume level being wrong or... Just test it. Including every reflector link in the chain. :-)

If you can, give the stream fixed bandwidth out from your partyplace to the streamer. You don't want it stuttering just because someone suddenly wanted to upload something. (We've had reflectors outside the hall the last few years, simply because the bandwidth situation out of any external site is going to be oh-so-much more predictable than the one of your party uplink.)

Also, having someone on board who's actually done it before, with a similar hw/sw combination, helps a lot. The second and third times are a lot easier. :-)
added on the 2010-09-05 00:22:21 by Sesse Sesse
I just want to add one thing... don't ever let one thing (network, stream, football tournament, sound setup, party cms, whatever) take away something from the overall party experience. Have dedicated teams deal with the seperate issues so that if one thing fails the rest of the party doesn't suffer.

In my ~15 years and ~45 parties visited I've expereinces this from time to time (always with smaller parties) and that can really get a good party a bad reputation.

Enough trolling.
added on the 2010-09-05 11:56:09 by thec thec
also, make sure you have dedicated upstream for the video link. the last thing you'd like to do is another evoke-fail-stream...
I'm sure that kyber is able to handle that kind of stuff ;) - but yeah. For now we're just looking into the matter since our Internet connection will be somewhat better than last year (not that last year was bad)

Thanks for the suggestions so far - and keep them coming if you have more. Once we've come further I might add more questions :D
added on the 2010-09-05 19:56:59 by Puryx Puryx
Here's another tip: Make sure there's any (real-time) way for people outside to contact someone in charge of the stream. From the inside it can be extremely difficult to know that things are bad or broken for the outside.

(An IRC channel should suffice easily. Just make sure it's prominently visible on the stream page.)
added on the 2010-09-05 19:58:09 by Sesse Sesse
... or through this thread on poulet.net
Oh, completely missed this thread the first time around! Breakpoint logical video setup is like this:

All video sources (*) -> DVI crossbar
All audio sources -> Mixer
Main DVI output -> Video projector, stream (still DVI)
Stream (DVI), Main mixer out -> Stream (DV). This involves a scan converter and a dedicated HW DV encoder; converting to SDI or even HD-SDI would be preferable, but requires extra HW in the encoding machine.
Stream (DV) gets piped into encoding machine (via Firewire) which runs Flash Media Encoder. From there on feed to main stream server (running Flash Media Server) in an external datacenter.

Be sure to use QoS/traffic shaping to make sure the video upstream gets its bandwidth at all times.

The Flash media server stuff worked really well for us, but of course the license is crazy expensive; we were only able to use it because we scored some serious sponsoring by Adobe (thanks guys!).

(*) This assumes all-DVI sources. What we actually use is a digital video mixer which accepts digital (DVI/SDI/HD-SDI) and analog (D-Sub, Component, FBAS) inputs and can scan-convert and digitize on the fly if necessary. You can build this by hand using a DVI crossbar and some more scan converters, but a proper video mixer is way more convenient of course :)

Finally, I second Sesses remark about testing - you really don't want to debug this stuff while the party is running. Be sure to test it well in advance and get at least 100 viewers to check that it's actually working in real-life conditions! It's easy, just do an impromptu demo show and post the link on pouet :)
added on the 2011-01-05 00:41:45 by ryg ryg
And before kb or acryd shoot me: Yes, the above post is a simplified view; in our case, there's also a separate (analog) video mixer for the steam director (yes you need a director if you have concerts or other live events that involve several people with cameras running around!), some link back from the stream mixer to the main video mixer (in case we want to put some of the camera stuff on the projector). Then there's a similar construction for audio, some odds and ends and a bunch of improvised hacks (whenever we need to do something that wasn't planned), all held together by gaffer tape.
added on the 2011-01-05 00:47:47 by ryg ryg
I made a post that sort of summarizes everything I know about this, plus some things that came up in this thread. (I also borrowed the title :-) ) You can have a look at http://blog.sesse.net/blog/tech/TG/2012-01-14-11-28_the_art_of_streaming_from_a_ demoparty.
added on the 2012-01-14 11:22:19 by Sesse Sesse
No encoder will save you if some Danes throw a million particles into your compo, unless you have cranked your bitrate obscenely high. Sorry. The best you can hope for is mush.
I laughed hard at this :)
added on the 2012-01-14 11:36:50 by gloom gloom
@Sesse: You know, we also have the possibility of helping out with the video streaming from parties nowadays. :) Thanx for the comment in the blog, btw. :P
added on the 2012-01-14 22:22:48 by Ziphoid Ziphoid
Ziphoid: did you guys get the hardware up and running btw?
added on the 2012-01-14 23:02:34 by Puryx Puryx
Ziphoid: I didn't know that, but I'm sure it's great for a smaller party. Do you have any information about what you do technically etc.? :-)
added on the 2012-01-15 00:14:08 by Sesse Sesse
@Puryx: Well, kinda. We "just" need a proper encoding laptop that can support the Black Magic Intensity's USB3 pickiness. The rest is starting to look ok.

@Sesse: Well, we're still working out the quirks, especially hardwarewise. The card I mentioned above is VERY picky with which USB3 hardware we should use, but when we get that one running, we can give quite neat possibilities of input.

What we would need to have it all completely working is a laptop with a certain type of USB3 hardware, but since they're kinda expensive, we'll probably have to run some kind of donation call-out to be able to afford it. A cool thing would be to also get our hands on some simple video mixer, but as said, finances are not strong so we'll see what we can do with what we have. We have solved some broadcasts with a bunch of webcams and creative setup and placement of those and as you mentioned quite early in your blog, the ambition level is set to stream SOMETHING to the people not at the party. What we also do is to try to add a bit more feeling by our overall moderation, but we're not aiming to do a fully fledged TV production, since we're not really qualified for that. :) At least we have the backbone with bandwidth enough to be able to provide video streaming from as many parties as we go to, but we're still working on getting the final hardware to do it properly, but we're working on it all. Since we have people attending quite a lot of parties out there, doing audio broadcasts, it's a natural step to proceed into video as well. :) It also gives a bit more for the viewers to get a bit of moderation on top of the video feed, instead of just having a quite static feed showing only what happens, without adding any sort of extra feeling to it all. That's at least the feedback we've gotten about our earlier broadcasts. :)
added on the 2012-01-15 01:52:27 by Ziphoid Ziphoid
Tokyo Demofest this year used uStream quility was not the best but it was pretty stable with 100 viewers
Ziphoid: What do you use for software? (Both mixing and streaming, I guess.) I considered writing something like DVSwitch just not sucky (ie. some color correction support, up to 720p instead of being locked to DV, fast enough code that a simple frame doesn't cause it to drop fields silently etc.), but I found that eventually, it wasn't really worth it for me. :-)
added on the 2012-01-15 11:51:53 by Sesse Sesse
Sesse: We've looked into Telestream WireCast, but that's a quite expensive solution so we'll see what we end up with. WireCast does what we need, though. :)
added on the 2012-01-15 17:44:30 by Ziphoid Ziphoid