

Google’s YouTube Uses FFmpeg - naryad
http://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/

======
robterrell
I 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
This is great!

I think the bigger story is how much popular web applications are dependant on
open source operating systems, libraries and programs.

~~~
jswinghammer
Probably 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.

------
wcoenen
To 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>) 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.

~~~
nikcub
Google won't touch or integrate anything that is GPL licensed into their own
products - especially AGPL. the linux kernel in android is the only GPL code
you will find from Google, and even then they got a lot of criticism from FSF
folks for deciding to license modules under a more liberal license

So if you are a developer and want to see your own library and code used by
corporates such as Google and many others, a more liberal license is the only
way to go.

If it is a javascript library or a web application, again, a more liberal
license is the way to go since the FSF insist that a script include means your
entire app must be GPL.

Using copyright law to force corporations and developers to become
contributors and active participants in your software project is, to me, a
ridiculous notion.

~~~
wcoenen
> _Google won't touch or integrate anything that is GPL licensed into their
> own products_

ffmpeg is GPL, and it is being used in youtube. Isn't that the story here?

> _Using copyright law to force corporations and developers to become
> contributors and active participants in your software project is, to me, a
> ridiculous notion._

So the fact that so many companies contribute to the Linux kernel has nothing
to do with its GPL license?

Without the GPL there would be a "tragedy of the commons" situation: it would
be best for the common good to share and avoid duplicated efforts, but it
would be advantageous for individual companies to use the code but not share
their improvements. The GPL fixes that by enforcing cooperation.

~~~
Lol_Lolovici
FFmpeg can also be compiled with an LGPL license so it can be linked in
commercial products.

Also executing an external GPL library/binary from a commercial product (no
direct linking) is not in direct contradiction with GPL terms (although it's a
gray area where most companies would probably not want to go).

~~~
dman
Can you elaborate on the gray area bit?

~~~
sovande
See the GPL FAQ <http://www.gnu.org/licenses/gpl-faq.html#MereAggregation>

The last paragraph describe the gray area; i.e. if a proprietary program
depends on- and combine a GPL program to perform its functionality it can be
argued that the two parts are a combined work and hence the whole work must be
licensed under the GPL.

------
rbanffy
Well... 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
I recommend Skol.

------
Andrex
What 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.

~~~
tszming
MEncoder

~~~
pmjordan
Doesn't mplayer/mencoder also use libavcodec (i.e. ffmpeg) for many codecs?

------
NSMeta
My 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/>

------
samarudge
I 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
Why 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
If 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
I 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 :)

------
dkl
Anyone else want to see the ffmpeg command lines used for various conversions?
I've looked before for them, but had no luck.

------
MrJagil
VLC 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
VLC uses libavcodec from ffmpeg for many of its codecs.

