Justin.TV launches an iPhone live video broadcasting app
blog.justin.tv
blog.justin.tv
I've been looking into writing a live streaming app, and came across the warning "Important: iPhone and iPad apps that send large amounts of audio or video data over cellular networks are required to use HTTP Live Streaming." (http://developer.apple.com/library/ios/#documentation/networ...).
However, it also says "Typical latency with recommended settings is in the neighborhood of 30 seconds" in the FAQ.
So... I'm not really sure how to proceed.
What H.264 encoding is used (profile, level)?
What bitrate do you aim for? Is it different for 3G vs 802.11g/n?
What framerate/resolution?
Thanks for the opportunity to ask!
iPhone 4 and 3GS. The iPhone 3G didn't have a hardware video encoder, if I recall correctly, so we disabled broadcasting on it and anything lower (though viewing works just fine!).
I think we also tested on the latest iPod Touch and found everything worked. I'd have to check my notes to be certain though (sorry, not in front of my work laptop, looking after my 1-month-old daughter right now!).
What H.264 encoding is used (profile, level)?
Would definitely have to check my notes for this. I'll follow up.
What bitrate do you aim for? Is it different for 3G vs 802.11g/n?
The OS gives us a limited degree of control on this one. We get to specify the bitrate as "high", "medium" or "low" and it appears to be completely undocumented what each one maps to, if they're the same for each device, etc. In practice it looks like "low" is always around 80-120kbps, "medium" is about 800kbps-1.5mbps and "high" is somewhere north of 4mbps. We use "low" and "medium" depending on how much actual network bandwidth we think is available.
What framerate/resolution?
Resolution depends on the camera - we don't modify it away from the native resolution. So far, either 480x360 or 192x144 depending on device and selected camera.
Same is basically true for framerate. So far every camera I've tested has given us 26fps.
The iPhone 4's camera is 1280 × 720 though . . .?
Would definitely have to check my notes for this. I'll follow up.
Baseline profile, 1.3.
If Justin.tv could sort by event, other users could watch events like outsidelands music festival and flip through all the different view angles of the concert.
I understand event based results can be found by searching, but the idea of a collection of event streams intrigues me. Just an idea..
Especially, if you have justin.tv sponsor an event, and get the majority of users to download the app and start broadcasting.
The app should be able to send approx. GPS position, and the server can create an event "channel" with all the related streams (based on GPS).
App should have a location-disable option too.
I don't know about you, but as a consumer I don't like it when companies insert BS clauses they have no intention of enforcing (or worse, selectively enforcing) in their TOS. Not that anyone here needs more convincing that AT&T sucks...
It's actually the very first thing on their list of prohibited uses.
Examples of prohibited uses include, without limitation, the following: (i) server devices or host computer applications, including, but not limited to, Web camera posts or broadcasts, [...]