Follow up to Our Recent Transcode Changes

We started this week off by implementing our new transcode labeling and resolution changes. While we checked our systems and made initial tweaks, we also followed your feedback to these changes. Considering the lack of communication we provided and an unnecessarily silly tweet, we could clearly see that many of you were frustrated. It’s been an interesting 48 hours.

These initial configurations were not meant to be final. Our intent was to make changes as we evaluated functionality of the new system and reviewed your feedback. While we erred on the side of providing the best mobile experience (Low = 240p and Medium = 360p), we left our Web users wanting more (ie, 480p).

Here is our plan for making a few adjustments now and more later.

When we launched the new labels and adjusted resolution targets on Monday, here’s what we set:

Low 240p

Medium 360p

High 720p

In addition to these, we relabeled the broadcaster’s natively configured resolution to Source for all channels. We do not alter the broadcaster’s source in any way. As alluded to in the previous blog, we made this labeling change because the resolution of the stream is only a very small component of what makes a channel great. Resolution alone doesn’t account for important information like broadcaster starvation or entertainment value. We want broadcasters to be able to focus on creating great content at the best quality they can offer; picking what you watch shouldn’t be about what number shows up at the bottom of the player.

One huge benefit to the new video system is that all Twitch Partners now offer a full set of resolution options.

As of last night (August 28, 2013), we adjusted labels and their corresponding resolutions to more Web-focused qualities:

Low 360p

Medium 480p

High 720p

We want to emphasize the transitional nature of these changes. We expect that moving all of our transcoding into a unified system will lead to a significantly more efficient use of resources. If things go well, we’re hoping over the several months to improve the quality and bandwidth requirements for all transcoded broadcasts.

We’re also considering ways for the more curious viewers to find more in-depth stream information like frame rate and bitrate.

We strive to provide the best experience across all of our platforms, and will continue to push the envelope with new features. Feedback is essential in making sure we’re doing right by our users. We thank you as always for your feedback and look forward to hearing more from you as we deliver on this plan.

PS: We’ve never had any intention of charging for 480p. Resolutions are paywalled entirely at the broadcaster’s discretion.

We had another awesome episode of Twitch Weekly this week! If you want to know more about the all of...

PCHSC2

Labeling resolutions as “low”, “medium”, and “high” was a bad decision. It’s not transparent and why change something that isn’t broken? I’ll tell you why: dumbing down technology with incoming console users.

http://andreehansson.se/ Andrée Hansson

I think it’s a normalization between all platforms Twitch will be supporting (yes, including consoles). Mobile streams, for example, are generally are not spoken about in terms of 320p, 480p etc. It makes a lot of sense to me, even if I might miss the “technical information”, but… there are literally four settings for you to remember, it’s not that bad.

PCHSC2

It’s not about me or current Twitch.tv streamers/viewers remembering the settings. It’s about keeping simple transparency. Why should Twitch rename simple resolution titles with potentially misleading names? Because console companies said so? Somebody with money is, of course, making these kind of bad decisions here. Not to mention new users will have to look this up.

http://andreehansson.se/ Andrée Hansson

I’m not sure what the console companies are saying, can I read that somewhere?

Low, Medium, High, Source – to me- is more user friendly. And if “Low” is too poor, you just try “Medium” and so on.

pHizi0n

Not everyone that watches twitch speaks English and even the ones that do can easily get confused by “source”. The old labels the entire world could understand, bigger numbers are better and they are already familiar with them from HDTV.

Endo Flawless

You think they are looking at twitch in english if they don’t speak it? Or you think its translated text?

pHizi0n

Twitch’s site is only in English afaik (ie. things that they author directly) but it does support foreign languages in chat and the areas that broadcasters can edit on their pages. Streams are mostly English but there are some foreign language streams, especially for big esports events. For instance, Dreamhack typically has ~5 languages being streamed. Sometimes these viewers are not watching on Twitch’s site directly but instead they are on another site with the player embeded so they may or may not see chat to even be able to ask what all the qualities mean from someone that speaks their language. These labels need to be translated to every major language served by Twitch, resolutions do not need any translating.

PCHSC2

I don’t think anybody really knows what console companies and Twitch have to dumb down this normalization process.

Endo Flawless

How is High medium and low misleading? High, Medium, Low lol do you have issues at the gas station? Can you work a normal air conditioner or fan?

PCHSC2

Great questions, “Endo”. High at a gas station can range anywhere from octane rating of 100+ all the way down to 91. The same goes for video and audio quality. Why does Twitch’s 720p and 1080p have such a low bit rate? I laughed at your assumption of “normal”.

pHizi0n

The whole world understands resolutions, we don’t need generic ambiguous terms such as “source”, “high”, “medium”, and “low” which have to be translated into other languages for foreign markets whereas resolutions do not. This was one of my first complaints when the android app beta program started. Gamers are not idiots, don’t try to treat us as such.

Resolutions should not be removed as the indicators of quality, instead strict minimum settings should be required of broadcaster to stream at a particular resolution like 1.5mbps for 720p and 3mbps for 1080p (along with more advanced requirements like keyframe intervals and other codec settings).

PCHSC2

Thank you a million times over. I couldn’t agree with this post more.

http://daow.net DAOWAce

That’s what another site does, but those bitrates are borderline minimum for those resolutions.

Still, that would be a good change.

pHizi0n

Yes that’s the point. The minimum requirements should only be the very least needed to ensure that people don’t try to use a high resolution with way too little bitrate and then have a super blocky stream as a result. For very low motion things (like all the talk shows) those minimums are still way over what they need and for high motion it is a little less than they need but it’s just a rough example of how they could set guidelines.

Aaron Clay

Games like Magic the Gathering Online take ~300-400kbp/s for 720p. Games like Call of Duty should take 2500+. How would you propose maintaining a list of games and “minimum bitrates?”

As the blog states, we’re moving towards ways the more curious viewers/technical viewers can find this information (perhaps via the API?)

pHizi0n

You started telling broadcasters on their dashboard whether they meet your quality standards so just expand that to be per game. Classify games into a few broad categories based on how much bitrate they need so that all the card games are in a low bitrate group, maybe a medium bitrate group if needed, and then a high bitrate group. Set minimums for each group and if a stream doesn’t meet the minimums then warn the broadcaster on their dashboard.

http://twitter.com/FuzzyOtterBalls Justin Wong

They allow us to be more flexible when adjusting the quality presets. For example, some games might get a higher-quality low/medium transcode because readable text is more important. I guess we could call it “360p” even if it’s actually 432p or something, but that seems misleading.

Amazon, Hulu, Netflix, and others all use non-resolution labels. I think savvier users understand what each resolution means and have generally accepted them as a method of labeling “quality”, but it definitely still confuses some people. Conversely, I don’t think “low” confuses the people who grasp resolutions. It’s something to monitor as users adapt, but in general lowering barriers to enjoy and understand streaming is important. We’ll make the resolution/bitrate stats available if you’re curious.

Eventually, when we get to implement adaptive bitrate on web (the Xbox app does this currently), it’ll just auto-switch depending on bandwidth and you won’t care what they’re called.

pHizi0n

In the example of changing the transcoded resolutions for certain games, you could just label them what they are still. ie. the lowest quality might say “360p” on most games but for that game it would say “432p”. I find this example odd though because if you actually did change the resolution for particular games then it could make many mobile device unable to decode it. For instance, my Tmobile G2 lagged even at 360p while I was using android 2.3 (even though I could play 480p fine in the media player) but after the android app devs told me that android >=4.0 was much faster at decoding I decided to try it even though my phone is old/slow single core 800mhz and now I can play high quality just fine.

Lots of sites label things either way but afaik you don’t translate anything on your site and these labels could really use translation but resolutions don’t need translation.

When you do add adaptive quality scaling, please do not force it on the desktop market. Have it as an option and label it something like “Adaptive (current quality)”. I can’t stress enough how angry I will be if I’m watching a stream at source quality and then it randomly switches to a much lower quality transcode just because I download something real quick or w/e.

http://twitter.com/FuzzyOtterBalls Justin Wong

We’re adding the “more info” for power users. It’s potentially confusing to see resolutions bouncing around. We’ll be able to scale up or down dynamically to respond to capacity. A certain subset will understand, but Twitch’s user base is very broad.

Adaptive will be an option like “Auto” is on YouTube.

Sigmundur Jonsson

please do NOT force us to use a crappy Auto quality setting. I ALWAYS use an extension that allows me to FORCE the youtube player to STAY at a certain resolution when it loads videos. and i really hate their “feature” that turns HD on when I fullscreen when i’m somewhere where I DON’T have good bandwidth.

PCHSC2

So basically you’re conforming to what other content providers have implemented instead of being different and intelligent. Thanks.

http://twitter.com/FuzzyOtterBalls Justin Wong

Well, we could “conform” to YouTube and use resolutions or we could “conform” to another video provider. I suppose we could be “different” and name them something wacky like potato, sandwich, steak but how does different mean better?

Scyrehawk

“won’t care what they’re called.”

… Right up until 3/4’s of the world blow their data caps. Smooth move… Sorry but no, this attitude is precisely the reason that I mourn the fact 0wned screwed up.

http://twitter.com/FuzzyOtterBalls Justin Wong

You don’t know what bitrate you’re watching if they were labeled by resolutions. How would that help with data caps?

Scyrehawk

when was the last time a stream was running 480p was running at 4k bit rate? Wait… never.

http://twitter.com/FuzzyOtterBalls Justin Wong

So you’re just arbitrarily estimating bitrate based on an external indicator? Go on, just guess what 360p is versus Low in Gigabits per hour.

Scyrehawk

around 150-160mb per hour give or take a few at 360p. 240 approximately at 480p per hour and so on. Easy to garner estimates.

how much per hour on low? Well thats a guessing game since no one can easily use basic tools to find out without first having to research what exactly “Low” stands for.

http://twitter.com/FuzzyOtterBalls Justin Wong

At 150mb per hour, the approximate bitrate is 41kbps. That’s lower than an audio-only stream. How did you arrive at that estimate?

It’s almost as if resolution alone doesn’t tell anything about data usage.

Scyrehawk

tells you a damn site more than “Low”, “Medium” “High”.

the point is, your labels are meaningless nonsense. Frankly the way your speaking down on the whole idea of reverting, anyone would think it was your pet baby.

News Flash, no one wanted this change to begin with. And to be completely honest, talking down to the people who are actually speaking out and giving actual feedback isn’t helping any.

http://twitter.com/FuzzyOtterBalls Justin Wong

It doesn’t tell you anything more or less than resolution numbers when it comes to your original contention: hitting data caps. They’re just labels that denote relative quality, as meaningless and arbitrary as “low”, “medium”, “high” or Netflix’s connection strength “bars”. From just a resolution number, you don’t know framerate, bitrate, profile, or encoder preset — all factors that play into stream quality. Resolution is a tiny piece of the end result, and it’s pointless to look to it as the sole indicator of quality.

Scyrehawk

case in point. Most of the world does not use or even have access to Netflix, quit being narrowmindedly fixated on the US market, in fact the majority of the world does not use any of the 3 services you listed.

Secondly, What in the word “Low” gives you ANY indication of data usage? I contend instead that the majority of users the world over, though, could give you rough approximations on their data usage at 360p or 480p.

The fact is, you just don’t want to even consider the possibility that that we had before was actually more informative than some airy fairy low, medium, high.

Cyrus Hall

As Justin made very clear, we are looking to add such details into the player – far more details than we ever made easily accessible previously. There is no conspiracy here.

Justin’s point about bandwidth is quite fair; let me give an even better example: how many GBs is an hour of Source? What about the old 720p+? You’d have to study the stream and have a fair knowledge of H.264 to make that calculation without just measuring the bandwidth. For power users, such as yourself, we are working on better solutions.

nairbington

Please at least have an option to turn off the auto-switch quality. I live on a college campus and other sites that use adaptive bitrate are unwatchable since the university’s connection speed has a lot of variation.

Kieran Clark

Are there any plans to change transcoding settings at all? The “High” transcode could look a lot better with minor encoding tweaks.

Barry LordBaer

was wondering if you had changed something. I can no longer view streams in the browser of my HPTouch. thanks for keeping up up to date

Bob Smith

I’m glad twitch reconsidered and reverted the changes they made. I love twitch, but they’re playing a dangerous game these days and are resting on their laurels a bit too much. It hurts to see the missteps such as this they’ve taken.

Twitch used to be loved by all and were the people’s streaming champ. However, because of the continual lag problems in europe and this transcoding fiasco, public sentiment is very much turning against twitch. I’ve never seen all of sc, dota and lol reddit so vehemently against twitch as I saw yesterday.

A lot of people are waiting for a true competitor to arrive, so they can ditch twitch and that makes me kind of sad. Twitch could have had the world and been beloved by people, but with missteps like this, they’re slowing losing the public perception game and the twitch brand is no longer as loved as it once was. Just sucks to see that and it could have all been avoided with better decision making by twitch.

SpaceShipRat

“picking what you watch shouldn’t be about what number shows up at the bottom of the player.” “We’re also considering ways for the more curious viewers to find more in-depth stream information like frame rate and bitrate.”
Huh? isn’t that a bit contradictory?

1. It’s clear you care a lot about mobile, since you’re using the baseline h264 profile, and initially had a 240p stream. Why not keep the 240p stream in addition to the others? You could add a “minimal” quality if you want to keep with the theme of “low, medium, high”. Of course, this means another transcode (albeit a lightweight one) but it would mean adding another good option for mobile users like you originally wanted.

2. I agree that “the resolution of the stream is only a very small component of what makes a channel great” and that the fact that the quality labels have used resolution as an indicator of quality has led to the wide misunderstanding that resolution = quality. However, by giving a simplistic 1:1 correspondence in this post between low/360p, medium/480p, and high/720p, you’re further perpetuating the wrong message that quality = resolution. If you want to be consistent with your messaging, you should at the very least include target bit rate with the quality descriptions you’re providing (i.e. High = 720p30 @ 1300kbps or whatever it is).

3. Can we pleeeaaase not use the baseline profile? I know that iPhone 3GSs can’t decode fast enough for Main/High with CABAC, but the quality difference is very noticable…do that many people still have 3GSs? Or are you using baseline for other reasons?

Thanks for continuing to listen to feedback!

Kieran Clark

You can leave medium and below on baseline, but High absolutely should be at least Main profile. The devices that can watch 720p content support Main and High profiles anyway.

Cyrus Hall

We are working toward a future where such changes are possible. It will require us to be far smarter about how we are dealing with our mobile platforms. The data tracking and API changes necessary to expose the needed data are being made now, and once that work is complete, we will be able to move in this direction. However, using High and Main requires significantly more CPU when transcoding, such that we will likely be unable to roll out such a feature for all partners anytime soon.

Kieran Clark

Yeah, they definitely use more CPU power, but devices that will be able to watch 720p resolutions to begin with will have the horsepower to handle it. As far as I’ve been able to find out, the 3GS can’t even watch 720p content, and is limited to Baseline profile. The iPad 1/iPhone 4 and later models all support Main or better, and 720p resolutions. Heck, you can even keep the Level at 3.1 since that supports up to 720p30fps. I’m betting most of the mobile crowd doesn’t even watch 720p transcodes anyway, it’s too bitrate intensive for on the go viewing.

I also question the assertion that Main will use “significantly” more than Baseline. You can do Main profile with Superfast encoding preset, which is barely more CPU intensive than Ultrafast, which is what I assume is being used now. High profile is probably not needed.

It’s possible that while the step up from Ultrafast to Superfast barely requires any more CPU power, I’m vastly underestimating the required power needed to support all the transcodes, but I can’t imagine that being the case unless all the transcodes currently being done were already basically maxing out your capabilities.

Anyway, this is all pretty nitpicky stuff from me, to be honest, but I just don’t see much reason why the 720p transcode has to be such poor encoding efficiency.

Guest

actually…after some fiddling around on my part, is the 720p transcode just veryfast forced to Baseline Profile?

Cyrus Hall

Kieran, I was discussing CPU on our side doing the transcoding, not the users. However, user CPU consumption is not a zero concern. Every time we move transcodes one way or the other we get complaints from the edges: too much CPU, not enough quality. It’s not a simple balancing act once the breadth of viewership is considered.

As I said previously, we are working on supporting Main and High for devices that can watch it. No timeframe on when that will happen.

Kieran Clark

Hey, that sounds good to me man. Thanks for taking the time to read my ramblings and respond, really appreciate it.

Kieran Clark

actually…after some fiddling around on my part, is the 720p transcode just veryfast forced to Baseline Profile?

(I think this got double posted accidentally, had some site issues for a sec, whoops)

No1

“High” definitely could use a little more video bitrate and a little less audio bitrate. aac@160kbps is a bit overkill. the video could use at least another 100 to 200 kbps.

Kieran Clark

It’s more about the encoding settings in this case, to be honest. Though admittedly, even with decent encoding settings anything high motion will have problems looking decent at only 1600 bitrate 720p.

David McLeod

3. We have more than just iOS to consider here unfortunately.

Endo Flawless

Then people will complain about how they bought this new phone w/ a 720p+ screen w/ OLED etc

Anaerin

Why is CBR required? VBR allows for a much better usage of available bandwidth. I believe that most, if not all, players can handle VBR just as well as CBR (For the untranscoded streams). Your transcoded streams can still be CBR, as it simplifies the bandwidth calculations.

Jorge Villatoro

The problem with VBR is not on the client side, but on the server side. VBR can be difficult, or even impossible to load balance on the server side.

For example, imagine a scenario where you’re waiting for an e-sports event to start. Typically you’ll see a static image, or one with minimal motion. This causes a VBR stream to idle at a very very low bitrate. There’s no good way to predict where the bitrate will average once the action begins, and so a server may get loaded with viewers watching at a low bitrate. Once the bitrate trends up due to motion, a server that may have been under capacity could go to 10x over capacity, or worse.

Another problem with VBR is one that is more complex and difficult to explain. Basically the server and client have to negotiate how much data they are able to receive at any given time. VBR streams can be *extremely* variable in their bitrates, sometimes by more than even 10x the baseline. When a large burst of data is sent to a client, frequently it will react by asking the server to send less data while it finishes receiving the burst. One example of more or less what this looks like is this experiment around driving and traffic jams: http://www.youtube.com/watch?v=Suugn-p5C1M

CBR drastically reduces these problem by leveling out the load profile per user on a server, as well as the traffic being pushed to a client. Both of these result in much less viewer lag, which as you might guess ranks as the top concern viewers have when viewing our streams.

Hope that helps clear some things up for you!

Jorge Villatoro

I should say, the problem is both on the server *and* the client side.

http://daow.net DAOWAce

“We’re also considering ways for the more curious viewers to find more in-depth stream information like frame rate..”

You could start with reverting the video player change to not keep the progress bar on the video at all times.

May only be in VoDs, but that’s how I test out my streams for framedrops. Having the video player UI completely skews the FPS monitor.

http://daow.net DAOWAce

So, what’s next? Ultra 1080p? Super 1440p? Ultra Super Omega 2160p?

Oh yeah, Twitch doesn’t want to go above 720p, I forgot.

http://www.andrewbashore.com/ Andrew Bashore

Providing those levels of transcoders would be very resource intensive.

Scyrehawk

frankly, this whole low, medium, high bit is stupid. Stop trying to reinvent the damn wheel already. Using such generic labels is not only wasted effort, it can lead users who have data caps to be far more wary of the service.

Do us and yourselves a favor and revert it to the old naming standards, ESPECIALLY for Source, since this one in particular can be the most problematic since different streamers can and will have different max rates.

I know your intention was to make it more user friendly, but frankly all you’ve done with this change is make it LESS user friendly. Less info is NEVER a good option.

David McLeod

The question we ask ourselves is, how do we communicate via those resolutions when we start tailoring it to specific games? When 480p on a Magic stream is different to 480p in Minecraft… and its is different than 480p in COD?

Scyrehawk

Simply put, You don’t. Using arbitrarily obfuscated tags of Low/Medium/High does not in any way differentiate between them anymore than 480p either, but those tags also in no way give the user any idea if it is 480p or 360p Either.

The use of 240p/360p/480p/720p/1080p give certain expectations of general quality automatically give some expectation on the quality of a broadcast, yes and quite frankly rightly so. BUT, it is a transparent system that is understandable across the board. Stating that companies like Amazon, Hulu, Netflix all use non quality based settings is blind to how the rest of the non US world works, Let alone twitch’s biggest competition YouTube, especially with their current strides back into the live streaming industry.

Less info is in no way better.

bmanner

Thank god twitch is spending its time dumbing down instead of say fixing chat, fixing the log out issue (and no “clear cookies and cache” is not a solution) or any of the number of problems that have persisted for months.

PsionicArchon

Thank you, I’ve been a recipient of these problems since the Justin.tv days. It’s gone on far longer than a few months.

bmanner

“Resolution alone doesn’t account for important information like broadcaster starvation or entertainment value. We want broadcasters to be able to focus on creating great content at the best quality they can offer; picking what you watch shouldn’t be about what number shows up at the bottom of the player.”

Also this entire paragraph makes no sense. You’re intentionally confusing choosing a stream to watch, and choosing a resolution to watch that stream in. Those are two separate decisions.

Schwer_Muta

“Low” is a useless term that doesn’t mean anything. How can being less informative be more user friendly?

kmg90

You should be less concerned about the naming convention of the stream rates and fix the video player that is ungodly unoptimized….
How does a 480p stream cause CPU usage on an i7 of around 20%?! No other application or website that plays video ever hits 10% even when viewing 1080P videos….

I would almost think they have some bitcoin mining going on in the background of the Twitch video player….

Also love that my comments mysteriously disappear even though I don’t post comments that break any rules and don’t attack others….

PsionicArchon

At the time of this post, the only selectable option for me is Source, aka, highest possible quality. In my last post (which doubtfully past moderator approval) I stated how irritating this can be when watching ones own stream. I always keep a vlc window of my stream running on a second screen. At the moment, I’m unable to do this. The CPU usage of high resolution footage + encoding + the game is simply too great.

“Considering the lack of communication we provided and an unnecessarily
silly tweet, we could clearly see that many of you were frustrated. It’s
been an interesting 48 hours.”

This tends to occur when you approach customer service like some juvenile fresh out of college. It’s the kind of answer I expect from EA or Microsoft employees being payed little over minimum wage. How about an on site notice, something along the lines of: “We’re upgrading our transcoder options, expect intermittent service.” Place it as a dismissible message at the very top of the site, displayed each time you visit Twitch, or each first time you visit Twitch.

That way, when streams sputter and, chug, or entire channels go down for undisclosed periods of time we at least understand why. It’s also good to provide a time frame. “Our services will barely function for the next forty-eight hours, stay tuned” also works.

If you can preform these simple tasks, you might not even need snarky comments in your blog posts.

Travis Simpson

I’ve been using twitch for 3 years on my 25Mbps connection. Ever since they switch to low/med/high/source settings my video stutters. (on any single stream) So now with a 25Mps connection I’m forced to use “low” to watch streams since both medium, high, and source stutter every few seconds. Give me my high resolution back….what did you do to your transcode? .

Maurice Hunter

Same experience here. The new setup is causing major conflict with the way the CDN and/or ISPs are prioritizing your data stream Twitch. No bueno!!

http://www.nerdjunkies.com Joel Rios

Does this have anything to do with partnered streams as far as being able to view via mobile?
I have an excellent score on our channel but no mobile access. Only desktop. Please let me know if I missed something.

Latest Updates

About Twitch

Twitch is the world's leading live video platform and community for gamers with more than 100 million unique viewers per month. We want to connect gamers around the world by allowing them to broadcast, watch, and chat from everywhere they play.