17 ms·
FFmpeg 4.2
- antoineMoPa 7y agoIn case anyone is confused with FFmpeg, ffmpeg, libav. etc., follow [0]: [0] https://stackoverflow.com/questions/9477115/what-are-the-differences-and-similarities-between-ffmpeg-libav-and-avconv/9477756#9477756 https://stackoverflow.com/questions/9477115/what-are-the-dif...
- jaimex2 7y agofirst I've heard of any of these. I've always just apt installed ffmpeg from my distro. Works perfectly.
- Kaiyou 7y agoAt some point in time that wouldn't have installed ffmpeg, but libav instead.
- Jaepa 7y agoSo what is the difference? This comment looks to be adhomenum remarks on forks. If it’s clear and I’m just missing it, sorry i have a temp of 102.3 so I’m a little hazy.
- anoncareer0212 7y agoTL;DR: Use ffmpeg Man, if these reads like ad hominem, I wish you could read the whole story. The linked comment is admirably restrained to the point it prefers being confusing over explaining what happened (fwiw I have no dog in the fight, was privy to the goings-on because my project depended on ffmpeg)
- Jaepa 7y agoAlright. Got it thank you.
- kuschku 7y agoMost of the core contributors had a fight with the project lead, so many of them left the project and forked into libav. So the community and the projects both split, and both fought about being the real one. And at first, ffmpeg focused only on features, regardless of code quality, while libav focused on clean code, even if that meant compromising on features. Obviously, people who aligned with the project lead, and people wondering why stuff suddenly didn’t work anymore, were fed up with libav. Even though it was a situation where libavs codebase was, compared to ffmpeg, much cleaner, similar to openssl vs libressl, but sacrificed a huge amount of functionality for that goal. EDIT: Rephrasing for accuracy
- Hello71 7y agoI have no bone in this fight, but this is an egregiously terrible and biased summary. I will pick some of the most ridiculous points here to rebut, but a better summary could be found in literally any of the search results for "ffmpeg libav". > The project lead had a fight with all the other core contributors There was longstanding animosity between the project lead and other developers, due to a variety of reasons, mainly his dictatorial leadership style. > everyone but the lead left the project and forked into libav A small set of contributors with technical control over certain infrastructure removed the lead's access. > So the community and the projects both split, and both fought about being the real one. This contradicts your previous claim that "everyone but the lead left the project". > And at first, ffmpeg focused only on features, regardless of security, while libav focused on security and clean code, even if that meant compromising on features. This is ridiculous. libav did remove a large amount of code that was working, some of which may have been insecure or not designed well, but a lot of which was actually necessary for people's workflows and not "dead code" as they claimed. Moreover, ffmpeg had a significantly better security profile than libav due to actually patching bugs rather than waiting to do it right (which ffmpeg developers will argue was basically "doing it differently than ffmpeg"). > Even though it was a situation where libavs codebase was, compared to ffmpeg, much cleaner, similar to openssl vs libressl. It wasn't cleaner, just less. It became more and more "less" when ffmpeg gained new (well-designed) features, and libav refused to merge them just because they were not designed by libav.
- minimaxir 7y agoWhat exactly is the "GIF parser"? I thought FFmpeg already did GIF I/O.
- em3rgent0rdr 7y agoDon't know exactly, but https://trac.ffmpeg.org/ticket/1347 https://trac.ffmpeg.org/ticket/1347 looks like the ticket and http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=8f66d46ce5f41be8084ad14061cec8f8e769d711 http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=8f66d46... looks like the commit implementing it.
- sp332 7y agoLooking at comments on https://stackoverflow.com/questions/53460876/process-gif-using-ffmpeg-libraries-cant-find-parser-at-av-parser-init https://stackoverflow.com/questions/53460876/process-gif-usi... there was only a demuxer, no parser. I'm not sure why you'd need a parser but according to https://superuser.com/a/787073 https://superuser.com/a/787073 ffmpeg always treated GIFs as movies, so maybe this is a way to tell which GIFs are single images?
- astrange 7y agoIIRC parsers let it reconstruct metadata from files that aren't muxed, or inaccurately muxed. For instance, you'd need one to read raw .h264 files properly into .mp4. Not sure how that would apply to GIF.
- _Gyan_ 7y agoParsers typically are used to correctly demarcate packet boundaries in (coded) bitstreams e.g. H.264 bitstream is partitioned into NAL units and the parser assembles all relevant units for a single frame/slice so that the decoder gets everything it needs to decode that sample, nothing more, nothing less.
- astrange 7y agoWell I should hope it does more by now because that's not enough information to mux an H.264 stream. You need to recover PTS/DTS offsets, keyframe types, SPS, etc.
- citrusui 7y agoA little confused on what they mean by PCM-DVD encoder. Wasn't ffmpeg always able to do this?
- _Gyan_ 7y agoPCM-DVD has a specific way in how the channels are interleaved. For bit depths higher than 16, each sample is split so that the lowest byte is stored following the high bytes of all channels. There's also a 3-byte metadata which has to be prefixed to each packet. All of these steps could have been done via a bitstream filter but since the codec_id is different, this has to be done at the encoding stage.
- yboris 7y agoMassive "thank you" to FFmpeg for being an amazing tool. My app pivotally depends on FFmpeg extracting screenshots of videos for users to browse through: https://github.com/whyboris/Video-Hub-App https://github.com/whyboris/Video-Hub-App
- benbristow 7y agoIf you're making money from it, why not donate for future development? http://ffmpeg.org/donations.html http://ffmpeg.org/donations.html
- davidweatherall 7y agoThis software is available for $3.50 through videohubapp.com $3.50 of every sale goes to the cost-effective charity Against Malaria Foundation. Appears to donate 100% straight to Charity by the looks of it.
- eXpl0it3r 7y agoThe text is rather confusing. Why not directly mention that the money is fully donated? It's great that the author likes supporting a charity/foundation, but as a customer, I would expect my money to be used to maintain and further develop the software I pay for. Having all the money directly getting donated, makes me slightly worry about longevity/maintenance of a product...
- pingyong 7y agoMaybe if you buy something for $3.50 you should always be slightly worried about the longevity/maintenance of the product...
- yboris 7y agoAuthor here. I need to clarify my messaging on the website: $3.50 gets donated with every purchase (even though after fees a $3.50 purchase results in about $3.00 going to my account). The people who choose to pay more (there are many!) cover the fees -- huge "thank you" to them. I'm releasing version 2 in the next 2 months: anyone who ever bought the software (700+ people) will get the download link in their email. I keep a log of all the donations: https://videohubapp.com/blog.html https://videohubapp.com/blog.html -- you can click to see the charity website log as well: https://www.againstmalaria.com/VideoHubApp https://www.againstmalaria.com/VideoHubApp Happy to answer any questions :)
- danabrams 7y agoCan't say I blame them for the removal of libndi-newtek, given the situation, but I wish FFMpeg (and gstreamer) had ndi support. Would love to see an open source NDI, but I know newtek will never allow it.
- jsight 7y agoThat is actually really sad. I wonder what are the chances of someone reimplementing NDI support as FOSS?
- danabrams 7y agoI don’t think it’s just an implementation problem. I think there are patent issues preventing this. Newtek should really bite the bullet and just open source, and make their money on the hardware.
- huslage 7y agoI don’t think it has anything to do with patents. Anyone can use the library for free. NewTek just doesn’t want to open source the library.
- seandougall 7y agoEven though they don’t charge for the library, they have a lot riding on the perception of the quality of their protocol. If they allow third party implementations and some of them suck, it might tarnish NDI’s image (and indirectly hurt them via the money they make on hardware). Edit: I’m certainly not arguing that any particular implementation does suck, just saying that I can see why they might want to protect IP they don’t make money from directly.
- noir_lord 7y agoPatents aren’t as much of an issue on software outside the US so it’s theoretically doable legally, it would just be like the situation with mp3 etc, Americans would have to snag the packages hosted from outside the US.
- josteink 7y agoNice to see improved HEVC 4:4:4 support in Linux.
- saghul 7y ago> AV1 decoding support through libdav1d Nice to see progress in the AV1 front!
- rolltiide 7y agoremember the dark ages when we had to actually care about codecs and which ones were installed at any given point in time?
- canada_dry 7y ago> remember the dark ages... BVLC.
- lapnitnelav 7y agoVeni vidi vlc
- dguaraglia 7y agoBwahaha, I still remember getting those 'codepacs' for Windows that'd install like 20 codecs at the same time, including one that was a thin wrapper around libav/ffmpeg. 99% sure half of those violated all kinds of EULAs and copyright issues.
- rolltiide 7y ago> 99% sure half of those violated all kinds of EULAs and copyright issues. by the time you got there you were way past that point.
- ArlenBales 7y agoYup.. K-Lite Codec Pack, CCCP, etc.
- fucking_tragedy 7y agoChromecasts don't support MPEG-TS. Suddenly had to care about that the other day.
- LAMike 7y agoIs there any higher level libraries for JS that wrap FFmpeg commands cleaner? I'm building some software on using it is kind of cumbersome
- deleted 7y ago[deleted]
- evangow 7y agoI haven't used it, but I believe JIMP might work for you if you're looking for a JS solution to image manipulation https://github.com/oliver-moran/jimp https://github.com/oliver-moran/jimp
- h1d 7y agoFor images, you'd want to use a more performant 'sharp'. https://github.com/lovell/sharp https://github.com/lovell/sharp Benchmark https://sharp.pixelplumbing.com/en/stable/performance/ https://sharp.pixelplumbing.com/en/stable/performance/
- rationalthug 7y agoFor node, there is https://github.com/fluent-ffmpeg/node-fluent-ffmpeg https://github.com/fluent-ffmpeg/node-fluent-ffmpeg.
- ryanbharvey 7y agoI've been working through this over the last year plus in node, and ended up deciding with my team earlier this year to build a library that makes this easier to understand and work with. It's early yet, and explicit I/O mapping is not quite there at the moment, but you're welcome to check it out. Feedback is welcome. https://tedconf.github.io/fessonia https://tedconf.github.io/fessonia
- KuhlMensch 7y agoIs there anything in the new release that would allow an encoder to be "motion-aware"? e.g. if the video is static, don't store any information. But if there is movement in the video, start storing frames etc WHY? I find myself recording lots of videos of me talking through code in an IDE. The screen mostly static, with some occasional the screen scrolling. The regular tradeoff-space afforded by CRF doesn't seem to get me the size results I believe are possible.
- quixoticelixer- 7y agoEncoders already do this to some extent, but that is the codecs job (AV1, H264 etc) not FFmpegs.
- slimscsi 7y agoIncrease the key-frame interval
- hackcasual 7y agoThis might be helpful: https://video.stackexchange.com/questions/24680/what-is-keyint-and-min-keyint-and-no-scenecut https://video.stackexchange.com/questions/24680/what-is-keyi... If you're storing video only for offline viewing with minimal seeking, you can increase the iframe seperation, but if you're streaming this video, you'll need to pay the cost of including iframes to allow clients to seek or recover from dropped packets.
- nullwasamistake 7y agoThis guy is totally right. When there's no change on screen a huge percentage of bandwidth is from iframes, essentially start over points for fast forward and network corruption. There's a tradeoff between skip/fast forward fidelity, streaming delay, and iframes. If you're not live streaming and don't care how easy it is to skip around the video increase the iframes inverval as much as you want and watch the bitrate melt away
- astrange 7y agoIf you're streaming, you don't need to implement full I-frames; instead you can do a kind of top-to-bottom rolling refresh. The video will be corrupt until the decoder catches up, but that's OK. This is mostly used for TV broadcasts where you don't want the whole keyframe to get lost because of some brief interference. It's also good because it lowers peak bandwidth per second.
- thwythwy 7y agoDoes this play nice with Python youtube-dl? [1] [2]. I want to run a python script on my computer that captures youtube audio of certain government meetings without first having to dl the entire video and convert it (while doing a bunch of other stuff before and after automatically, all without me touching anything). [1] https://stackoverflow.com/questions/27473526/download-only-audio-from-youtube-video-using-youtube-dl-in-python-script https://stackoverflow.com/questions/27473526/download-only-a... [2] https://stackoverflow.com/questions/39665160/youtube-dl-python-script-postprocessing-error-ffmpeg-codecs-arent-being-recogn https://stackoverflow.com/questions/39665160/youtube-dl-pyth...
- icebraining 7y agoUnless you need to convert the audio format, I don't think you need ffmpeg at all - youtube-dl can just download the audio stream and save it to a file. Just list the available formats from a video and choose an audio-only format.
- thwythwy 7y agowill try thank you
- Nullabillity 7y agoAlso, IIRC youtube-dl will automatically re-encode it using ffmpeg if you pick an unavailable format!
- timendum 7y agoInsome cases youtube-dl downloads the content via ffmpeg, see [1] [1] https://github.com/ytdl-org/youtube-dl/blob/c3bcd206eb031de30179c88ac7acd806a477ceae/youtube_dl/downloader/__init__.py https://github.com/ytdl-org/youtube-dl/blob/c3bcd206eb031de3...
- A2017U1 7y agoyoutube-dl -x <url> uses ffmpeg out of the box to extract mp3 audio from a video.
- 7y ago