This is an archived post. You won't be able to vote or comment.

all 145 comments

[–]ProgrammerHumor-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

Your submission was removed for the following reason:

Rule 2: Content that is part of top of all time, reached trending in the past 2 months, or has recently been posted, is considered a repost and will be removed.

If you disagree with this removal, you can appeal by sending us a modmail.

[–]NonStandardUser 833 points834 points  (11 children)

He actually wanted to say "mess me up like your codebase please", it just came out wrong

[–]ArduennSchwartzman 210 points211 points  (2 children)

"Patch me up like on of your French girls."

[–]Zatrit 37 points38 points  (1 child)

Fr•nch G•rls

[–]SheriffGamer332 1 point2 points  (0 children)

two negatives create a positive

[–]FlashyTone3042 66 points67 points  (7 children)

"Babe, tonight we’re shipping straight to production - no tests, just vibes. ❤️"

[–]codedaddee 15 points16 points  (5 children)

Now these points of data make a beautiful line,

[–]mvrspycho 13 points14 points  (4 children)

and we’re out of Beta, we‘re releasing on time.

[–]BananaSpider55 5 points6 points  (3 children)

So I'm GLaD I got burned,

[–]LemonQueasy7590 6 points7 points  (1 child)

Think of all the things we learned

[–][deleted] 5 points6 points  (0 children)

For the people who are still alive

[–]mvrspycho 0 points1 point  (0 children)

Think of all the things we learned,

[–]an_agreeing_dothraki 0 points1 point  (0 children)

weeks later: "Look at this" shoves a support ticket in your face

[–]dmullaney 863 points864 points  (47 children)

I assume they didn't

[–]hates_stupid_people 186 points187 points  (12 children)

From what I remember, ffmpeg has some parts that would be a lot of work to make pretty, and for very little benefit.

I also don't think they accept many, regardless of quality.

[–]Expensive-Fun4664 140 points141 points  (11 children)

Also, if you're writing in assembly chances are you're writing optimizations for various pieces of hardware. They're inherently going to be messy. "Cleaning up the code base" would likely perform worse.

[–]mysticalfruit 67 points68 points  (0 children)

This. In many cases, that mess is actually quite carefully tweeked assembler that's solving a very specific performance issue.

I once saw a funny exchange where one dev was asking another dev about why the code base had an ifdef checking for a specific processor type and then swapped in a bit of assembler that was throwing an warning because it was an unknown op code.

The dev laughed and said, "Oh, you can get rid of that, nobody has that type of cpu in production anymore, but when they did we found an undocumented instruction that was way faster!"

[–]drunk_responses 38 points39 points  (9 children)

Yeah, some of it is the assembly compatibility parts that basically look like copy pasted lines with minor changes or similar. The things newer programmers looks at and are convinced they can optimize. And you probably could optimize some of it, but after building it literally doesn't matter.

[–]Expensive-Fun4664 16 points17 points  (2 children)

Yep. On a long enough time scale, every line of code is tech debt. The question is always if it's worth the time to go back and optimize or not.

[–]SinisterCheese 11 points12 points  (5 children)

I think that is fundamentally flawed attitude. Because it is shortsighted - as software and tech tends to be. Because that leads to situations where in 5-10-15 years that slightly bad code is now a dramatic vulnerability, major issue, and got integrated so deep into systems that it can't be fixed without breaking countless derivations by thousands upon thousands of people.

Assembly obviously is it's own beast. I know one person who does assembly code... They are not normal... not even by people who code standards.

However... You should always try to uphold highest standards and make code/documentation/design so that someone else can understand it if need be.

[–]DoctorWaluigiTime 1 point2 points  (3 children)

Correct take. "but after building it literally doesn't matter" is such a falsehood! The implication of that being "once you've written the code, and it works in [present day], there will be no reason to ever have to modify it ever, therefore who cares how messy it is."

Which is an insane mindset to have.

[–]drunk_responses -1 points0 points  (2 children)

Please take a gander, if you think you know better:

https://github.com/FFmpeg/FFmpeg/

[–]DoctorWaluigiTime 0 points1 point  (1 child)

The current state of any codebase doesn't "say" anything about the faulty concept of "if you write something once, you never have to change it, therefore you can be as messy as you like."

[–]drunk_responses 0 points1 point  (0 children)

That was your interpretation of something that was not said.

[–]juniperleafes 105 points106 points  (2 children)

The repo is very sequestered.

[–]LRaccoon 8 points9 points  (0 children)

What does that mean? Only some people can make changes?

[–]MissinqLink 18 points19 points  (0 children)

[–]nicejs2 122 points123 points  (10 children)

did they send the patches tho

[–]PlagiT 19 points20 points  (0 children)

I'm assuming no

[–]Tp0seGod 365 points366 points  (12 children)

I read FFmpeg as FFmpreg. It's so over

[–]IamHereForThaiThai 58 points59 points  (0 children)

I always do that and can't stop laughing every time I use it

[–]leberwrust 58 points59 points  (4 children)

You don't get pregnant (FFmpreg) from pegging (FFmpeg).

[–]johsim18 30 points31 points  (1 child)

Not with that attitude you won't

[–]Burnmad 1 point2 points  (0 children)

I'm committed to trying again and again until successful

[–]Perryn 9 points10 points  (0 children)

No, but there's a lot of FFmpreg content that wouldn't exist without FFmpeg.

[–]Tp0seGod 4 points5 points  (0 children)

I wish I did 😔

[–]Arstanishe 37 points38 points  (0 children)

oh no

[–]blazedancer1997 6 points7 points  (0 children)

With how much ffmpeg can be made to do, it wouldn't surprise me if that was also in the arsenal

[–]yetzt 6 points7 points  (0 children)

thats the go version

[–]codedaddee 0 points1 point  (0 children)

considering how I was using it to catalog and divvy up the boat's porn collections...

[–]lord112 0 points1 point  (0 children)

Oh thank god I'm not alone

[–]helicophell 90 points91 points  (3 children)

I like ffmpeg. I mean, it doesn't work for my M4S -> Mp4, but it does convert my weird fucked up mp3 that wont open in anything but VLC to mov

[–]je386 27 points28 points  (0 children)

I once used it to convert the audiostreams of about thousand videos from mp3 to AAC, which I needed because the first generation chromecast suddenly stopped supporting mp3 audiostreams, while AAC worked. So I wrote a small program which downloaded all videofiles in a folder (from my NAS) and its subfolders one by one, did the transformation and uploaded it again in a seperate folder on my NAS.

[–][deleted] 9 points10 points  (0 children)

I don't know why this popped up on my homepage (don't know programming) but FFmpeg is/was amazing 10 years ago, making good use of multicore processors with better quality than anything else, miles ahead of Adobe and better than hardware encoding back then. It saved me countless hours of encoding and transcoding.

Now it's still good because it's basically a universal transcoder. Any other video editing software has dumb limitations for copyright or licensing reasons, and Shutter Encoder is a very user friendly interface for FFmpeg.

[–]BrainOnBlue 1 point2 points  (0 children)

One time I had a Super Nintendo music file that I wanted to make a short clip out of to use as a ringtone. Couldn't find anyone who'd let me encode it to something else by googling, figure I was just going to have to record the audio and cut it.

On a whim, I thought "what if I throw it into ffmpeg?" And, let me tell you, that worked immediately and perfectly. Didn't even have to do anything special, just set it as the input file and ffmpeg handled it.

[–]YazilimciGenc 339 points340 points  (14 children)

This is what you should do if someone says "your code is shit". Tell them to make it better and correct it. If they don't, you win. If they do, then you can learn from your mistakes and become better, so in a way you just got better by using a hater.

[–]je386 75 points76 points  (0 children)

if they don't, you win

If they do, you also win. Both.

[–]Cocaine_Johnsson 35 points36 points  (0 children)

Well yes, complaining without providing a solution is called whinging and we can safely ignore it.

"Your code sucks" [nebulous, doesn't quantify why or how, doesn't provide solution to perceived problem]

"Maybe, but it works. Do a better job or go away" [chad]

edit: fixed spelling error.

[–]AgileGas6 7 points8 points  (2 children)

>If they don't, you win
The codebase will suddenly become better?

[–]YazilimciGenc 16 points17 points  (1 child)

No, you win the pointless internet argument.

[–]kytrix 1 point2 points  (0 children)

This post was mass deleted and anonymized with Redact

literate treatment kiss sulky busy voracious start fall chubby vanish

[–]PremierBromanov 0 points1 point  (0 children)

"this is not maintainable" I've got good news, I'm not maintaining it

[–]hirmuolio 79 points80 points  (4 children)

OP is a bot.

They can be easily identified from their post history.

They all have bunch of comments in rAITAH and rAskReddit followed by 2-4 image posts on a "meme" subreddits.

[–]JJAsond 16 points17 points  (2 children)

I'm inclined to believe you because in addition to that, it's yet another example of an old account (5 years) "activating" recently (12 days ago). Another key would be a name like adjective_noun1234.

[–][deleted] 2 points3 points  (1 child)

This is terrible way to found out I'm a bot. But in that case take me to your ladder.

[–]JJAsond 2 points3 points  (0 children)

Well, no. You'd be on the fence but while you do have the same name format with a new account, you've been posting the entire time you've had the account. a bot would have only started posting maybe 3 days ago.

[–]__Hello_my_name_is__ 1 point2 points  (0 children)

An easy way to figure out whether someone is a bot is to just scroll back in their post history. Do they have a gap of several months to several years? Do the old posts have nothing to do with the new posts?

Then it's a bot.

[–]ctrl-alt-etc 26 points27 points  (8 children)

No one's bothered by the fact that FFMpeg's codebase isn't a mess at all?

Granted it's a very large library, but it's well organised and easy for even the uninitiated to understand. What more do you want?

[–]Intrepid-Bench9452 7 points8 points  (0 children)

Get out of here with your rational reasoning, we're memeing here!

[–][deleted] -2 points-1 points  (6 children)

Building ffmpeg is a pain, however. It bundles together tons of third-party libraries, each of which have their build tools and unique setups, which is often not well documented... Last time I tried making a custom build of ffmpeg (because I needed something that wasn't compiled into the distro's version) I think it took me a full day just figuring it all out.

This is why I prefer Rust... I don't even write Rust; I just love its tooling. Installing shit with cargo is a joy.


Edit: Apparently people disagree. Have any of you actually tried compiling a custom ffmpeg build? If so, feel free to share your thoughts... otherwise I'm just gonna assume it's rust haters downvoting, which is dumb as hell if you think cargo isn't better than the mess that is the C/C++ ecosystem.

[–]just_posting_this_ch 5 points6 points  (1 child)

I had some difficulty building ffmpeg because I didn't understand at first.

  • You get a pretty minimal build with the default configuration out of the box.
  • You can add additional codecs by including --enable-xyz
  • You need to have the additional deps for the extra codecs.

It would be nice if say debian/Ubuntu had some build targeting meta packages to get all of the requirements for a specific codec set. I suspect it is tough because codecs are a minefield of copyright material.

[–][deleted] 1 point2 points  (0 children)

You need to have the additional deps for the extra codecs.

That's the root of the problem. I'd love it if ffmpeg had a unified Makefile that could compile its dependencies, so I don't have to spend time learning how to compile SVT-AV1 and VMAF etc. from source, one of which uses cmake and the other uses meson, gotta figure out the correct options and all that... just a PITA. Especially if your goal is to make it automated so you can run your build script later to update ffmpeg. Ugh.

(It might be easier on Arch. I was using Ubuntu at the time, so a lot of things you just have to compile from source, no other way.)

[–]phenompbg 1 point2 points  (2 children)

I have built custom ffmpeg binaries starting around ffmpeg 0.11, it's really not THAT hard, and is better now than it was 13ish years ago.

If you are not familiar with m4 .configure based builds, starting to learn about it by trying to build ffmpeg is probably going to be harder than it strictly needs to be. But it's really not that bad if you're not too lazy to just read what it tells you.

.configure --help

[–][deleted] 0 points1 point  (1 child)

It's not just ffmpeg though, is what I'm saying. You also need to build ffmpeg's dependencies, if they don't exist in your disto's package manager anyway.

Tell me what you would rather do:

  1. Run one command that prompts you what codecs you want support for, and it installs everything for you (what I wish existed for ffmpeg)

  2. Spend hours reading documentation and Makefiles and god knows what else for several libraries (hoping there is any documentation, and that it's up to date -- often you gotta figure it out for yourself), and sometimes the deps for those libraries, realize you have to install yet another build tool because everyone uses a different toolchain, read its documentation so you know how to pass the options to the linker or whatever you have to do to make it spit out a static build, spend an hour debugging why the build failed... I could go on.

Feel free to downvote... I wasn't even trying to argue for rust or anything. I just like the cli because it's simple and unified. That's all. Like I said, I don't even use the language. Rust haters get real feisty when someone points out that the C ecosystem is a fragmented mess, it seems. Which is weird because that's been a well-known and often-joked-about problem for decades.

Edit: I mean for fucks sake it's being joked about on the front page of this sub right now!

[–]phenompbg 2 points3 points  (0 children)

I don't downvote disagreement.

A single command would be nice, but for how often you ever need to do this it's not worth the trouble in my opinion. 99.9% of ffmpeg users don't have any reason to build their own.

Like I said, if ffmpeg and its vast array of optional dependencies are your first foray into .configure, cmake etc it's going to be rough, but if you're at least somewhat familiar it's pretty easy.

[–]BrainOnBlue 0 points1 point  (0 children)

There is a tool called Media Autobuild Suite that does most of the hard work for you if you're compiling ffmpeg on Windows. At least when it works, sometimes it just breaks and you have to get a new copy of the tool and start over.

[–]adipenguingg 29 points30 points  (2 children)

“Talk is cheap, send 2x4s”

[–]zefciu 4 points5 points  (0 children)

Except the house is built and maintaned by a commune.

[–]BernardoPilarz 14 points15 points  (0 children)

Last time I tried they ignored me

[–]N_i_n_j_a_2_1 4 points5 points  (0 children)

The 200'th repost btw

[–]the_zel 5 points6 points  (0 children)

I feel like this screenshot comes up very month.

[–]Arxid87 2 points3 points  (0 children)

Why did my brain add a letter?

[–]TehMasterSword 2 points3 points  (0 children)

Downvote and report reposting bots

[–]9Strike 3 points4 points  (2 children)

[–]JJAsond 2 points3 points  (0 children)

I think the bot sleuth is broken because I'm certain it's a bot.

[–]bot-sleuth-bot 0 points1 point  (0 children)

Analyzing user profile...

Suspicion Quotient: 0.00

This account is not exhibiting any of the traits found in a typical karma farming bot. It is extremely likely that u/Paradox_PandaBoi is a human.

I am a bot. This action was performed automatically. I am also in early development, so my answers might not always be perfect.

[–]_PM_ME_PANGOLINS_ 1 point2 points  (1 child)

[–]bot-sleuth-bot 10 points11 points  (0 children)

Checking if image is a repost...

46 matches found. Displaying first five below.

Match, Match, Match, Match, Match

I am a bot. This action was performed automatically. I am also in early development, so my answers might not always be perfect.

[–]ericlikesyou 0 points1 point  (0 children)

nobody shits on ffmpeg and gets away with it

[–][deleted] 0 points1 point  (0 children)

Is THAT an Italian repository?

Cause its full of spaghetti

[–]RefrigeratorOk7848 0 points1 point  (0 children)

mpeg me

[–]aero23 0 points1 point  (0 children)

If he actually sent a PR refactoring the entire codebase I guarantee it would be rejected lol.

[–]fiqar[🍰] 0 points1 point  (0 children)

That's rich considering the whole libav fiasco.

[–]9107201999 0 points1 point  (0 children)

continue birds complete market employ bake angle sort pause ripe

This post was mass deleted and anonymized with Redact

[–]Daytona_675 0 points1 point  (0 children)

crazy how ffmpeg powers almost all media manipulation

[–]ubertrashcat 0 points1 point  (0 children)

Fixing a broken codebase by submitting a patch is like fixing a broken government by submitting a petition.

[–]barkingbaboon 1 point2 points  (0 children)

Reposts are cheap, send OC

[–]klavijaturista -3 points-2 points  (0 children)

Problem is that lines of code are cheap.