The other thing is it would mean they would have to build a billing and customer service infrastructure. At present they only really have a handful of customers [1] - the cable companies - so it's really easy for them to deal with that side of things. When you have 300 million subscribers, one of the biggest problems will be billing and customer service, so prices would further increase because of that.
I would love to see sport leagues do this. But things need to change somewhat before there will be any major incentive for it to happen.
[0]: Every league, team, sport is different, probably with different contracts with every cable company. The average wouldn't be useful at all because you would have more extreme data points than you would average data points.
[1]: Sure, some networks have online streaming options, but the kind of customer who has no problem paying the extra few hundred dollars a year for access are not the ones that will require the major customer support.
An ungodly amount. TV deals are everything to (at least American) pro sports. Smart athletes structure their deals to end the same time as the TV deals knowing that it will increase their potential salaries when the new deals are signed.
> and just get subscription fees directly from viewers and ad revenue directly from advertisers?
Because running a TV (or non-TV) network that has the reach and success of the big 4 networks is very fucking hard. You don't cut out the middle-man until you can replace what they give you.
While a large majority of the fans have broadband, they don't necessarily have something connected to the TV that will output the NFL streaming apps to their living room. There's also no proof that advertisers would pay the same rates for ads than they do for over the air TV.
Handing out the rights to TV stations also has all kinds of other advantages. You don't have to pay the TV stations to advertise the games. There is all kinds of content in said stations that could also be considered advertising: A team will be covered more in the channel that also carries the games than in one that does not. If you have an NFL app as the way to show the games, now you are the one paying the TV stations so that they cover your stuff. The NFL might get a bigger share of the pie, but other people are a whole lot less interested in helping the NFL grow its fan base. And yeah, the moment you start offering all games online bypassing live broadcasts, without at least a modicum of an attempt of blacking out regular TV broadcasts, the networks will balk at you, so if a pro sports league wants to move to online, they have to either only show content that the local TV stations do not want, or go all in, because the TV networks are not going to be happy competing with the league directly with the same content.
Good luck keeping an attempted switch secret too: To move broadcasts inhouse, a league would either have to purchase new equipment and crews, from the engineers at the stadium to the commentators, or to downright poach them, neither of which is easy to do.
So even if it's theoretically possible they'd make more money online, the risks and the political costs of doing such things are tough. We've seen how a player strike harms a sport's financials. A failed move online would be just as big, if not worse, and completely self inflicted.