M

Multimedia Mike

multimedia.cx · Personal blog · on HN since 2009

Multimedia Mike writes about multimedia codecs, FFmpeg, reverse engineering, retro consoles like the Dreamcast, and single-board computers.

What HN saysHN cites it as evidence that YouTube uses FFmpeg, and for older notes on game console formats and compression.
23HN people shared it
9linked it in comments
17stories submitted
312story points
3 years agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Google’s YouTube Uses FFmpeg
    5 people · 92 points · first shared 2011 · 40 comments on HN
  2. 2
  3. 3
    My SBC Collection
    1 people · 71 points · first shared 2023 · 48 comments on HN
  4. 4
    VP8: The Savior Codec
    1 people · 56 points · first shared 2010 · 22 comments on HN
  5. 5
    Understanding the Dreamcast GD-ROM Layout
    1 people · 53 points · first shared 2022 · 5 comments on HN
  6. 6
    Xbox Sphinx Protocol
    1 people · 13 points · first shared 2013 · 1 comments on HN
  7. 7
    ISO-9660 Compromise, Part 2: Finding Root
    1 people · 4 points · first shared 2021 · discussion on HN
  8. 8
    The Big VP8 Debug
    1 people · 2 points · first shared 2011 · discussion on HN
  9. 9
    Legal fights between forks on FFmpeg logo
    1 people · 2 points · first shared 2011 · discussion on HN
  10. 10
    Decoding VP8 On A Sega Dreamcast
    1 people · 2 points · first shared 2011 · discussion on HN
  11. 11
    Running Windows XP in 2016
    1 people · 2 points · first shared 2017 · discussion on HN
  12. 12
    Reverse Engineering Clue Chronicles Compression
    1 people · 1 points · first shared 2019 · discussion on HN
  13. 13
    What Every Programmer Should Know (multimedia edition)
    1 people · 1 points · first shared 2012 · discussion on HN
  14. 14
    Looking at today's VP8 open-sourcing
    1 people · 1 points · first shared 2010 · discussion on HN
  15. 15
    Evolution of Multimedia Fiefdoms
    1 people · 1 points · first shared 2014 · discussion on HN

What HN people wrote when they linked it

canucker2016 · 2023-12-12
Google's use of ffmpeg: https://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/ For encoding, recently, they've built their own ASIC to deal with H264 and VP9 encoding (for 7-33x faster encoding compared to CPU-only): https://arstechnica.com/gadgets/2021/04/youtube-is-now-building-its-ow…
anonacct37 · 2023-10-08
As someone who once had access to internal fleetwide profiling information, yes. There is older evidence based on quirks in encoding. https://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/
randomifcpfan · 2023-02-04
Circumstantial evidence that they used to: https://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/ These days they use special hardware accelerators: https://gwern.net/doc/cs/hardware/2021-ranganathan.pdf
pvg · 2017-03-30
No, compression was used extensively. Just often hand-rolled and for specific things. https://multimedia.cx/eggs/nes-compression/ has a link to an RLE implementation used in some Zelda game.
samworm · 2014-01-10
It is interesting that YouTube isn't mentioned in this blogpost, despite there being good evidence that ffmpeg has been used there[1]. The fuzz testing they mention is based around constructing malformed (or at least "exotic") input files and then monitoring for failures... ie simulating exactly the kind of attack someone might use against YouTube's transcoding infrastructure. [1] http://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/
astrange · 2013-05-31
> JPEG encoding, for instance, utilizes an O(n*log(n)) frequency analysis algorithm called a Discrete Cosine Transform. Scuse me? JPEG's frequency transform is a set of fixed linear transforms and is always 8x8, so this step is just O(n) of the area of the image. Also, it's not really "a DCT", just any approximation that will look good when run through the approximation of the opposite transform at the other side. See http://multimedia.cx/eggs/dct-pr/. The compression steps after are the most difficult, since they have poor ILP and can involve division. But JPEG is really simple, it's not a burden these days. One interesting part of it is minimizing the memory use of your application, by using the smallest possible ring buffer for pixels rather than keeping the whole image in memory at once.
woodall · 2010-09-09
For those who didn't know "black box" reverse engineering - systems are observed without examining internal structure. "white box" reverse engineering - the inner workings of the system are inspected. http://www.chillingeffects.org/reverse/faq.cgi#QID188 http://multimedia.cx/eggs/black-box-re/
mikemol · 2010-08-26
It's very much a case-by-case thing. On my quad-core Phenom 9650, with 8GB of RAM, I tried building FFMPEG using -j1 through -j10. Build times dropped until I got to -j9, which meant that, for my system, the fastest build occured when I ran -jN where N was 2x my CPU cores. This is the only place I documented it: http://multimedia.cx/eggs/ffmpeg-and-multiple-build-threads/#comment-1…
DarkShikari · 2009-07-25
Some various complaints: 1. http://hardwarebug.org/ Mans covers a lot of incredible retardation here, particularly on ARM and PPC platforms, such as cases where GCC generates 2-3 times the number of instructions necessary for no good reason. 1b. http://x264dev.multimedia.cx/?p=62#comments Until extremely recently, GCC's handling of multiplications of non-native types has been hilariously bad, up to and including loading the value zero into a register and multiplying by it. 2. General bugginess all over the place, particularly with non-x86 platforms. The number of failed unit tests for ffmpeg with gcc 4.4 on PPC64 was staggering. Of course, commercial compilers are buggy as well, so this is not really exclusive to GCC; the latest ICC miscompiles large chunks of ffmpeg and Mans has been quite busy submitting bug reports for armcc. 3. Tendency to get worse with every new release; this trend was finally reversed with 4.3 and 4.4, the latter of which was the first compiler to beat 2.9.5 in performance (in ffmpeg, at least): http://multimedia.cx/eggs/last-performance-smackdown-for-awhile/ 4. Tendency to declare obvious bugs to be not bugs; for example, failures in the register allocator for inline assembly in which it couldn't allocate 7 registers for the inline assembly despite 7 registers being available (but only inconsistently, on some platforms and some versions, for no apparent reason). Don't have links to the gcc bugtracker on me for these. 5. Incredibly…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close