8 ms·
Google’s YouTube Uses FFmpeg
- samarudge 15y agoI was under the impression (though I may be wrong) most standard video types are converted by some in-house closed source software developed by Google, but then if it's an odd/obscure format their software can't process they fall back on FFMPEG. Even if they do use FFMPEG I'd guess it's heavily modified to suit their needs/infastructure
- barkingcat 15y agoWhy would google want to reengineer and build closed sourced video converters? Especially when you need to pay multimillion dollar licensing fees to mpegla et al to even try to do such a thing.
- pornel 15y agoIf you touch a patented codec (in a country where software patents apply), you need to pay for patent license regardless whether you wrote the code yourself or not. Google must be paying for H.264 encoding already. > Why would google want to reengineer and build closed sourced video converters? To adapt them for their infrastructure and trade-offs. They are transcoding a lot of video. Zencoder for example modified their transcoders to encode multiple formats from a single decoded stream (I presume with ffmpeg you'd end up decoding same video multiple time during transcode into multiple formats).
- etherealG 15y agoI think you can use ffmpeg to decode to a buffer (memory or disk as needed), and the re-encode from that buffer into various sizes/formats. don't think you actually need a different encoder/decoder to do that. I may be horribly wrong though :)
- Andrex 15y agoWhat else would it use? (Genuinely curious, what else is viable?) Although I think it uses libvpx for WebM, but who knows, they may have migrated to FFmpeg 0.6.
- barkingcat 15y agoYes I agree. What else could they possibly be using? And you're supposed to use it to convert videos ... what's the story?
- deleted 15y ago[deleted]
- tszming 15y agoMEncoder
- pmjordan 15y agoDoesn't mplayer/mencoder also use libavcodec (i.e. ffmpeg) for many codecs?
- wulczer 15y agoGStreamer is another option. While support for some formats is provided in GStreamer by using ffmpeg, it has independent implementations for many formats and a very different architecture.
- jswinghammer 15y agoYou can script Sorenson Squeeze through a command line but that's expensive software and was probably not available in the form that exists today when YouTube launched.
- jon_dahl 15y agoTools like mencoder, On2 Flix Engine, and GStreamer are alternatives, but they share a lot of code with ffmpeg (including the ubiquitous libavcodec). If you want to avoid this altogether, you have a few options, though none of them are as strong as ffmpeg, like Quicktime, Microsoft (Expression Encoder etc.?), and enterprise software or hardware (Rhozet, Inlet, etc.). But I wouldn't be surprised if enterprise appliances even incorporate libavcodec today.
- wcoenen 15y agoTo me this illustrates that if you want to ensure that improvements to your code are shared back, you'd better use the AGPL license (http://www.gnu.org/licenses/agpl.html http://www.gnu.org/licenses/agpl.html) instead of GPL. Quote from the AGPL preamble: It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. edit: according to a comment below, Google is already sharing their improvements without being obliged to do so. Nice! You can't always count on goodwill though, so my point stands.
- kierank 15y agoChris Dibona has already co-ordinated the release of Google's patches to the FFmpeg community.
- jforman 15y agoOn the other hand, many companies avoid using AGPL code altogether. Code that isn't used can't be improved.
- joelthelion 15y agoIf they avoid it, it's because they are not ready to share the code. Thus their using the code is pretty much useless in the first place...
- mseebach 15y agoThere are two kinds of enhancements to consider: Enhancements that are specific to your product and enhancements that are general to the library you're incorporating. If Rails had been AGPL, every single webapp based on Rails would have to have its source code released. Now, Rails is not AGPL, does that mean that anybody using Rails (and not making their entire project open source) are "useless"? The vibrancy of the Rails community seems to disagree with that assessment.
- rbanffy 15y agoWell... I also use FFmpeg to encode all the video that's presented on th iG (a large Brazilian portal+ISP) channel in Sony and LG internet-enabled TVs. It works really well. If any FFmpeg developer is reading this, thank you for making our product possible. If you ever come to Brazil, the beer is on us.
- hyperbovine 15y agoI recommend Skol.
- MrJagil 15y agoVLC is able to playback RoQ as well apparently. It was not able to skip through the video though. Also the film is 27 seconds but VLC displayed it as 1:46. In any case, VLC can handle stuff like RoQ and that is why I love it.
- robterrell 15y agoVLC uses libavcodec from ffmpeg for many of its codecs.
- robterrell 15y agoI don't want to be snarky in response to an ffmpeg developer, because I love ffmpeg and respect his contributions, but still, this is not exactly news. The explosion of the entire category of "video sharing sites based on Flash" happened right after ffmpeg added FLV support. That was the missing piece -- before that, you could only convert videos to FLV using Adobe's proprietary (and expensive and crappy and GUI-based, not command-line) tools. ffmpeg provided the missing chunk of the pipeline, and a lot of people had the exact same "aha!" moment, and within a short time a bunch of sites like launched (or converted to a Flash video player from a crappy "Click here for WMV, Click here for QT, now wait a good long time" experience). ffmpeg didn't just help YouTube, it helped make the entire category of video-sharing websites go big.
- dimitar 15y agoThis is great! I think the bigger story is how much popular web applications are dependant on open source operating systems, libraries and programs.
- jswinghammer 15y agoProbably any that you've seen accept uploaded video from their users. My company's software is dependent on ffmpeg and a few other open source tools for converting and dealing with video. I don't accept uploaded video but I do a lot of transcoding and ffmpeg is excellent for that. I also use mp4box and handbrake if anyone is curious.
- mscarborough 15y agoWe use ffmpeg at Yahoo, and we used it at Associated Content to convert user's videos into FLV. ffmpeg + upload scripts is able to replace almost all of the manual time and 3 different Windows apps that editors used to do just to get a random video on the web.
- NSMeta 15y agoMy comment is somewhat off-topic. Google is also using Aspose[1] for their Google Docs' Documents. You can see it's Aspose.Words for Java, if you read the source of the documents you download from Google Docs. I've checked only for RTF and DOC formats though. [1] http://www.aspose.com/ http://www.aspose.com/
- dkl 15y agoAnyone else want to see the ffmpeg command lines used for various conversions? I've looked before for them, but had no luck.