17 ms·
FFmpeg 4.3
- minimaxir 6y agoChangelog: https://github.com/FFmpeg/FFmpeg/blob/master/Changelog https://github.com/FFmpeg/FFmpeg/blob/master/Changelog Seems like the big feature is Vulkan support?
- mfilion 6y agoExcellent summary of changes here: https://9to5linux.com/ffmpeg-4-3-released-with-vulkan-support-amd-amf-encoder-and-avisynth/ https://9to5linux.com/ffmpeg-4-3-released-with-vulkan-suppor...
- saagarjha 6y agoTIL there’s a 9to5Linux. Is it new/affiliated with the other 9to5 properties?
- pfranz 6y agoLooking at their respective About pages they seem unrelated: https://9to5mac.com/about/ https://9to5mac.com/about/ https://9to5linux.com/about-us https://9to5linux.com/about-us
- deleted 6y ago[deleted]
- anderspitman 6y agoAlso AV1 via librav1e. Is this the first time a Rust library has been compiled into FFmpeg?
- jug 6y agoOther pretty big ones looks like AV1 encoding (4.2 had decoding) and hardware acceleration for VP9.
- MisterPea 6y agoCan someone explain to me how FFmpeg seems to be the only open-source software to do even just basic functionality with audio. I was looking at getting the sound wave graph for a piece of audio a while ago, and not only was FFmpeg the only option I found to be able to do it, it was amazingly fast and also free.
- ArgyleSound 6y agowhy duplicate something that works really well?
- LaLaLand122 6y ago- You don't trust so much complex logic, taking untrusted input, written in C and want to rewrite it in Rust. - You want to code it all again using an API that doesn't expect to get its input from a blocking read() function. - ... I think the main reason there isn't any alternative is that it supports soooo many formats that the task seems impossible to anybody thinking about it.
- Erlich_Bachman 6y ago> - You want to code it all again using an API that doesn't expect to get its input from a blocking read() function. In which real world situation/scenario is this a problem? It is hard to think of one, but I am probably missing something? In any case, if that was a real show-stopper, it would probably be much wiser to go with a fork that would modify that one thing, instead of re-writing the whole project.
- toast0 6y agoI could see it being an issue if you were doing a bunch of streaming transcodes, and wanted that in an event loop instead of blocking... but a) you're probably going to want to control the number of simultaneous streams to a low enough number that you could just fork b) the responsible thing to do when decoding streams with ffmpeg is to disable all formats except your whitelisted format, but still sandbox the heck out of it, because there's been a lot of CVEs where a crafted input allows remote code execution Sandboxing is going to be much more complete if the ffmpeg process is only dealing with one input fd, one output fd (maybe an error reportint fd), and no network or filesystem access --- you don't want a decoder error to influence media you're encoding/decoding for another user.
- tambourine_man 6y agoffmpeg is amazing, but it’s like tar on steroids: I can never remember the right incantation. Google is required for even the simplest of things. I don’t know if it’s their goal, but I’d love a more user friendly set of command line arguments.
- coldpie 6y agoI think gstreamer's gst-launch syntax is a bit easier to read and write, although it has a different set of capabilities than ffmpeg, so may not be a whole replacement for what you want to do.
- the8472 6y agoIt's fine for simple transcoding jobs. Once it reaches certain complexity you at the very minimum want to outsource it to a shell script to organize the arguments in multiple lines or switch to some other language bindings that aren't limited by shell argument parsing. Compare the CLI and python invocation in this example: https://github.com/kkroening/ffmpeg-python#complex-filter-graphs https://github.com/kkroening/ffmpeg-python#complex-filter-gr... For some subsets of ffmpeg functionality (e.g. creating webm videos from other sources) there also are dedicated GUIs.
- jtchang 6y agoThat example is fantastic and really illustrates why a solid API can make things so much easier for the developer. Reading the command line I could barely tell what ffmpeg was doing. This also could mean the command line is badly designed.
- the8472 6y agoAs mentioned, splitting over multiple lines can help https://trac.ffmpeg.org/wiki/FilteringGuide#Multipleinputoverlayin2x2grid https://trac.ffmpeg.org/wiki/FilteringGuide#Multipleinputove...
- at_a_remove 6y agoSeveral years ago I was attempting to automate a very long chain of AV transformations using ffmepg and such. I distinctly remember having a dream of a green-text black window command line prompt of ffmpeg incantations and that is when I realized that I had been perhaps digging too deep.
- suhail 6y agoExciting improvements I am glad to see: Intel QSV-accelerated VP9 decoding, Support AMD AMF encoder on Linux (via Vulkan)
- cerberusss 6y agoffmpeg is fantastic. I'm an iOS dev and when I put something on Github, I first record the iOS simulator with QuickTime. Then I convert the resulting .mov file with ffmpeg: ffmpeg -i example.mov -r 15 example.gif Voilà, an animated gif. Quality is atrocious but it gets the message across, plus the filesize is not too big.
- izacus 6y agoIf you're prepared to run ffmpeg twice (allowing it to analyze the GIF), the quality will be significantly better: https://cassidy.codes/blog/2017/04/25/ffmpeg-frames-to-gif-optimization/ https://cassidy.codes/blog/2017/04/25/ffmpeg-frames-to-gif-o...
- _Gyan_ 6y agoNo need to run it twice. Basic syntax is ffmpeg -i video -filter_complex "[0]split[vid][pal];[pal]palettegen[pal];[vid][pal]paletteuse" out.gif ffmpeg 4.0 and later will automatically insert fifo buffers for the main video while one copy is analyzed to generate the palette.
- cerberusss 6y agoGreat tip, thanks!
- anderspitman 6y agoFrom https://9to5linux.com/ffmpeg-4-3-released-with-vulkan-support-amd-amf-encoder-and-avisynth/ https://9to5linux.com/ffmpeg-4-3-released-with-vulkan-suppor...: > support for the ZeroMQ Message Transport Protocol (ZMTP) This is fascinating. I've never heard of zmq being exposed in a public API. Cool idea.
- colpabar 6y agodoes anyone have a good installation guide, which includes all the stuff that isn't supported in the default installation? ffmpeg is great, but a lot of times I go to use it and find a feature isn't supported because I didn't compile it with a flag set.
- nkatsaros 6y agoIf you're on Windows or macOS there are good premade builds available at https://ffmpeg.zeranoe.com/builds/ https://ffmpeg.zeranoe.com/builds/. If you want to build it yourself look at https://github.com/rdp/ffmpeg-windows-build-helpers https://github.com/rdp/ffmpeg-windows-build-helpers (this supports more than just Windows).
- simple_phrases 6y agoThere are several static builds out there if you're okay with binaries. This person's builds[1] have the sources and build dependencies listed. [1] https://johnvansickle.com/ffmpeg/ https://johnvansickle.com/ffmpeg/
- mceachen 6y agoYou didn't say which OS, but I wrote a set of cross-platform instructions for my PhotoStructure users: https://photostructure.com/getting-started/video-support/ https://photostructure.com/getting-started/video-support/ tldr: if you're on Windows, use Chocolatey or Scoop. For macOS, use homebrew.
- anderspitman 6y agoIn case you didn't know, you can use FFmpeg to convert Audible aax files to DRM-free MP3/AAC/whatever [0] (scroll down for FFmpeg instructions). This is useful if for some reason you want to archive them or play them in an app that doesn't constantly change its UI and bombard you with ads. [0]: https://www.kylepiira.com/2019/05/12/how-to-break-audible-drm/ https://www.kylepiira.com/2019/05/12/how-to-break-audible-dr...
- TheAceOfHearts 6y agoIf you're converting .aax files you should consider using .m4b as the output, since it preserves chapters and remembers your last listened timestamp [0]: > Audiobook and podcast files, which also contain metadata including chapter markers, images, and hyperlinks, can use the extension .m4a, but more commonly use the .m4b extension. An .m4a audio file cannot "bookmark" (remember the last listening spot), whereas .m4b extension files can. The cool thing is that once you rip your activation bytes, it works for all your audiobooks. Would definitely recommend it. [0] https://en.wikipedia.org/wiki/MPEG-4_Part_14 https://en.wikipedia.org/wiki/MPEG-4_Part_14
- Youden 6y agoI don't think that's quite accurate. There's no functional difference between a .m4b file and a .m4a file. Both use the MP4 container so adhere to the same specification, so support all the same features (including bookmarks). FFmpeg even uses the same muxer and demuxer for both "formats". The only difference is a non-standard convention used by certain software (like iTunes) to write autiobook-related metadata only to MP4 files that use the .m4b file extension. You'll get exactly the same result if you just change the file extension after remuxing/transcoding.
- danudey 6y agoWell, it's also worth noting that different file extensions can have different associations, so .m4b is more likely to open in an app that the user wants to use for audiobooks, rather than opening in a generic mp4 audio playing app. Even iTunes, I think, would treat files differently between m4r (Ringtone) and m4a (audio) files, so despite there being no difference at all, using the 'correct' extension might be quite a bit more convenient in the long run.
- umaar 6y agoAs a little side project, I've been trying to automate creation of those "1 second everyday" style videos [1], and used FFmpeg to achieve this. For things like trimming and concatenating videos, one thing that surprised me was that it was slower than using a tool like ScreenFlow. Note, we're talking about hundreds of gigabytes worth of 4K videos. slower = When I say slower, I mean, if I manually performed the same operation in a professional video editing tool like ScreenFlow, the time it took ScreenFlow to export a video was quicker than the time it took FFmpeg to finish executing the command. Interestingly, there seems to be a fast and a slow way to do things in FFmpeg [2]. The slow way is free of quirks, whereas the fast way introduces something unexpected to the video, like a half a second of a black screen with audio continue playing like normal. I'm still curious as to how a tool like ScreenFlow can achieve faster trimming/concatenation/subtitle overlaying, than FFmpeg. I suspect if I read their documentation and do some more research, I'll discover a more optimal way of ordering the various flags on the command line which can speed up the execution, while preserving accuracy. [1] https://github.com/umaar/video-everyday https://github.com/umaar/video-everyday [2] https://superuser.com/questions/499380/accurate-cutting-of-video-audio-with-ffmpeg https://superuser.com/questions/499380/accurate-cutting-of-v...
- vanderZwan 6y ago> "1 second everyday" style videos Tangent: you reminded me of one of the coolest auditory experiences I've ever had. Roughly one-and-a-half decades ago I attended a public lecture by Olivier Nijs, a sound design guy from my region[0], about how he built an automated set-up from an old desktop to record one second of 7:00 in the morning every day. Then he manually cut together one whole year. The amazing thing about it was that after a few seconds the long-term trends really started to become noticeable. The changing sounds of birds, people and other living things. How rains in spring were somehow just a little different than the rains in summer or autumn. It was really, really amazing. (the artist himself wasn't that impressed with his own work - perhaps he saw someone else do it before and didn't feel like showing off with something unoriginal or something?) [0] https://www.oliviernijs.nl/ https://www.oliviernijs.nl/
- nneonneo 6y ago
- devwastaken 6y agoDoes anyone have a better documentation source for modern ffmpeg? Usually when I use it I get all sorts of different answers with different 'methods', and the official docs only confuse it more. Also I hope to see pure GPU transcoding sometime. H264 to h265 transcodes in pure GPU space are Uber fast, but so far only done by other software.
- Youden 6y ago> Also I hope to see pure GPU transcoding sometime. H264 to h265 transcodes in pure GPU space are Uber fast, but so far only done by other software. FFmpeg has had pure GPU transcoding for quite some time. See https://trac.ffmpeg.org/wiki/HWAccelIntro https://trac.ffmpeg.org/wiki/HWAccelIntro It even has a GPU-based scaler for NVIDIA.
- devwastaken 6y agoIt doesn't work pure GPU for transcoding between formats. You can do h264 to h264, but not h264 to h265, which can be done with other software if the hardware supports it.
- tgv 6y agoIf you get seriously confused, ask a question on stackoverflow. There's at least one dev around that answers. If it's a bug, they'll fix it.
- TheKarateKid 6y agoI’ve pretty much accepted that the project is too big and changing too fast to ever have detailed documentation written. Apple and Google don’t even fully document their products anymore.
- tbran 6y agoI wanted to create a slideshow a couple weeks ago and came across this article [0] on creating a Ken Burns Effect Slideshow. Very cool and is a great demo of some of ffmpeg's functionality. However, the final command is a little crazy: ffmpeg -i 1.jpg -i 2.jpg -i 3.jpg -filter_complex "color=c=black:r=60:size=1280x800:d=10[black];[0:v]format=pix_fmts=yuva420p,crop=w=2*floor(iw/2):h=2*floor(ih/2),zoompan=z='if(eq(on,1),1,zoom+0.000417)':x='0':y='ih-ih/zoom':fps=60:d=60*4:s=1280x800,crop=w=1280:h=800:x='(iw-ow)/2':y='(ih-oh)/2',fade=t=in:st=0:d=1:alpha=0,fade=t=out:st=3:d=1:alpha=1,setpts=PTS-STARTPTS[v0];[1:v]format=pix_fmts=yuva420p,crop=w=2*floor(iw/2):h=2*floor(ih/2),pad=w=9600:h=6000:x='(ow-iw)/2':y='(oh-ih)/2',zoompan=z='if(eq(on,1),1,zoom+0.000417)':x='0':y='0':fps=60:d=60*4:s=1280x800,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=3:d=1:alpha=1,setpts=PTS-STARTPTS+1*3/TB[v1];[2:v]format=pix_fmts=yuva420p,crop=w=2*floor(iw/2):h=2*floor(ih/2),zoompan=z='if(eq(on,1),1,zoom+0.000417)':x='0':y='0':fps=60:d=60*4:s=1600x800,crop=w=1280:h=800:x='(iw-ow)/2':y='(ih-oh)/2',fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=3:d=1:alpha=0,setpts=PTS-STARTPTS+2*3/TB[v2];[black][v0]overlay[ov0];[ov0][v1]overlay[ov1];[ov1][v2]overlay=format=yuv420" -c:v libx264 out.mp4 [0] https://el-tramo.be/blog/ken-burns-ffmpeg/ https://el-tramo.be/blog/ken-burns-ffmpeg/
- nine_k 6y agoIf you read the post by the link, each of these settings (or rather groups thereof) look reasonable and readabale in isolation. This demonstrates, in a rather extreme example, the colossal composability of the interface, even if it lacks nice formatting here.
- touisteur 6y agoI feel the same about imagemagick. Oh the things you can do with just curl, bash, imagemagick... And gnuplot if you're rich.
- strombofulous 6y agoWhy do you need to be rich for gnuplot? Aren't gnu things generally GPL?
- ChrisMarshallNY 6y agoI have used ffmpeg. It's a damn good project, and under current development and support. It also appears to be the only game in town. Many commercial offerings are really just veneers over custom ffmpeg implementations. Tuning it is also pretty crazy. Some folks can make entire careers out of just tuning ffmpeg. I think the biggest issue with video software (besides it being difficult and performance-intensive), is the prevalence of a lot of old, highly-enforceable patents. Video has been around a while, and companies like Ampex patented a heck of a lot of stuff that can easily be applied to current video. ffmpeg actually has a couple of build configs that are designed to remove coercive-licensed components. I'm not so happy about that, but it's the world we live in. I do have a project that I was playing around with (and will get back to, sooner or later), where I made a simple MacOS wrapper for ffmpeg: https://github.com/RiftValleySoftware/RVS_MediaServer https://github.com/RiftValleySoftware/RVS_MediaServer I wrote about that, here: https://littlegreenviper.com/series/streaming/ https://littlegreenviper.com/series/streaming/
- unilynx 6y agoIt's not the only game in town, the other major open source project for audio/video coding is gstreamer. https://gstreamer.freedesktop.org https://gstreamer.freedesktop.org
- ChrisMarshallNY 6y agoCool! I'll check that out.
- Budabellly 6y agoIt is worth mentioning that it's fairly common to use FFmpeg via gstreamer in the form of plugin. https://packages.debian.org/stretch/gstreamer1.0-libav https://packages.debian.org/stretch/gstreamer1.0-libav
- blululu 6y agoJohn Carmack recently commented on the ubiquity of FFMPEG: https://twitter.com/ID_AA_Carmack/status/1258531455220609025 https://twitter.com/ID_AA_Carmack/status/1258531455220609025 FFMPEG is amazing. I don't think that it's the only game in town, but there it's the best by far.
- jitendrac 6y agoffmpeg is great tool, Once I needed to do some basic video editing stuffs like cuts, fixed logo and some sound background on low resource computer, I quickly downloaded ffmpeg and work finished with few google searches and 10 minutes without any load on system.
- gattr 6y agoAnd here's my incantation for screen recording under X Window (also used one like it under MS Windows, but I don't have it on hand): ffmpeg -rtbufsize 2147M -f x11grab -video_size 1920x1080 -i :0.0 -r 30 -preset ultrafast -vcodec h264 output.mp4
- algorithm314 6y agonice but it doesn't record audio and doesn't use hardware acceleration.
- yesenadam 6y agoSo if that's possible, please tell us how!
- memexy 6y agoSomewhat related. Anyone have a good utility for downloading youtube videos?
- snazz 6y agohttps://ytdl-org.github.io/youtube-dl/index.html https://ytdl-org.github.io/youtube-dl/index.html is the gold standard.
- memexy 6y agoThanks.
- superkuh 6y agoAnd back on topic youtube-dl uses system ffmpeg for converting youtube's .webm and other weird discrete formats into proper video (or audio) files.
- nihonium 6y agoJust a reminder, depending on your installation method of youtube-dl , you may have to manually install ffmpeg globally on your system in order to download/mux highest quality videos.
- leokennis 6y agoAnd for good reason Insane amount of customization, and once you finally have pieces together your 10 line command with 40 parameters, you can just give it a huge list of URLs and let it do all the work in the background.
- sorenjan 6y agoIt should be noted that despite the name it supports a lot of different websites, not just Youtube. It's great to capture hls streams for instance.
- tim-- 6y ago
- yboris 6y agoHuge thank you to FFmpeg for making my Video Hub App possible: extracting screenshots from all videos in your video collection to create an easy to browse/search library. https://github.com/whyboris/Video-Hub-App https://github.com/whyboris/Video-Hub-App https://videohubapp.com/ https://videohubapp.com/
- yesenadam 6y agoThat's a great idea, looks awesome. If I understand the pricing, it's free for up to 50 files in each folder/hub; for more it's $3.50, which you donate 100% to an anti-malaria charity!
- yboris 6y agoGood way to describe it. A "Hub" is all the videos in a folder and all its subfolders. The demo will be 100% the same as the final app but with a 50 videos per hub restriction. You can build your own (without 50 videos limitation) with just `npm install` and `npm run electron:windows` (or `mac`, or `linux`). If you choose to buy, it's $3.50 minimum - you can pay more. $3.50 of every purchase goes to Against Malaria Foundation Cheers!
- abrowne 6y agoI use it with fd to convert audio files in parallel, such as FLAC to MP3 or Opus (or ALAC to FLAC when someone let me … sample a few albums). Found the tip on the Arch wiki: https://wiki.archlinux.org/index.php/Convert_FLAC_to_MP3#Parallel_with_recursion https://wiki.archlinux.org/index.php/Convert_FLAC_to_MP3#Par...
- soygul 6y agoFFmpeg is one of the prime examples of open-source software, but a lot depends on the 3rd party libraries it uses. I tried using my Android phone to convert my videos from H.264 to HEVC (H.265) for storage, but it was ~3.5 times slower in comparison to x86 CPUs, in terms of frames encoded per second per watts of power consumed (FPS/Watt): https://quanticdev.com/articles/h265-encoding-on-arm-cpus https://quanticdev.com/articles/h265-encoding-on-arm-cpus Though still, I can't even imagine attempting this test without FFmpeg in the first place. It is available directly in Termux on Android.
- ddevault 6y agoI was looking at ffmpeg in the Wayback Machine earlier today: https://web.archive.org/web/20010218084709/http://ffmpeg.sourceforge.net/ https://web.archive.org/web/20010218084709/http://ffmpeg.sou... Fascinating to see such an important and sophisticated product come from these modest beginnings.
- jeffnappi 6y agoI've been an ffmpeg user for something like 15 years now. The project never ceases to amaze :heart:
- jeffnappi 6y agoI've been an ffmpeg user for something like 15 years now. The project never ceases to amaze :heart: I remember using it to encode MPEG-2 DV footage to FLV (yes, flash video) to live-stream footage captured over firewire from early prosumer HD cameras :) It's always been a solid video swiss-army knife!
- praveen9920 6y agoIs it me or their mobile version of website has lot of issues
- doctorOb 6y agoMy favorite memory of FFmpeg involved wowing a friend with the "magic of computer hacking" by slicing a subsection of a youtube video, cutting the source audio, and replacing it with audio from a song he had discovered "fit perfectly". Never mind that the entire process took about 20 minutes of googling and trial/error with the Linux Subsystem for Windows. It was better than the native windows alternative :P https://www.youtube.com/watch?v=3tr8JVZdHfc https://www.youtube.com/watch?v=3tr8JVZdHfc
- smhmd 6y agoI thought that was Mad Rush for a second.
- platz 6y agoI wish FFmpeg still had NDI support NDI is super useful for low-latency local network streaming
- sorenjan 6y agoWith so much video processing research using neural networks now I hope ffmpeg gets better support for it. They have some filters that use them, like sr[0] for super resolution and dnn_processing for general processing, but the user experience isn't great. They need a model file that's not included, and you need to train one yourself since there doesn't seem to be any included. Hopefully they add better support in the future, together with more dnn filters. [0] https://ffmpeg.org/ffmpeg-filters.html#sr https://ffmpeg.org/ffmpeg-filters.html#sr
- oliwarner 6y agoI love ffmpeg but those release notes suck. If all you can say is how much time there's been, why isn't this just 4.2.4? I suspect there are major features and improvements buried in the 30 pages of commits. https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/4.3:/RELEASE_NOTES https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/rel...
- apocalyptic0n3 6y agoThere is an actual changelog, but it's just as sparse on details. At the very least tell me whether those filters are new, removed, fixed, etc. https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/Changelog https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/Changelo...
- erk__ 6y agoNow this sounds interesting - LEGO Racers ALP (.tun & .pcm) demuxer I think I will dig through to figure out what that actually means later.
- Denvercoder9 6y agoffmpeg can now extract data from the .tun & .pcm file formats (but it might not be able to decode it yet, depending on the encoding used in such files).
- vs49688 6y agoIt can, that's what the "High Voltage Software ADPCM decoder"'s for.
- _Gyan_ 6y agoA formal news entry isn't up yet. Expect it in a few days.
- oliwarner 6y agoThat's so much better than the shortlog that is linked from the release page: https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n4.3 https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n4.3
- cooper12 6y agoFFmpeg is hands down one of the most powerful and feature-packed tools I've used out there.[0] The associated complexity is also daunting, but thankfully there's a lot of documentation out there and it reflects the low level nuances of audiovisual formats. I highly recommend anyone struggling to utilize it to write wrapper scripts around it so you only need to figure out things once. Here are some things I've done with it by that approach: * Extracting any embedded subtitle files from MKVs. Nice if I want to search them or make changes. * Back when GIFs were more popular, I converted any that were over 3MB to video to save space. If the output wasn't small enough, it would do a second pass with different settings to get it more compact. Not needed that much these days. * "Barcodes" for videos, that is, it takes every second converted to a vertical sliver and combined you get an overview of how the average color of the film changes through its duration. * A tool for creating video excerpts that lets me specify a start time and end time in more flexible timestamp formatting, and other things like a simple parameter for the output width.[1] It also allowed specifying a target filesize and did the math so the right bitrate would be chosen. I even include metadata so I know which original file it was made from and the parameters specified. * Thumbnail previews. A lot of file sharing sites will include a file that includes some timestamped screenshots in a grid with encoding information at the top. This is good for movies so you see a high-level overview. The best part about doing this myself is that I could make it highly configurable, like choosing exactly how many images I want, the interval, whether I want timestamps, etc. Note, for some of these, I also needed ImageMagick. Also, when compiled with the right flags and libraries, FFmpeg has some really neat features: things like embedding subtitles, stabilizing video, hiding logos, etc. I recommend looking into the filters. Thank you for all the manpower that goes into the project! [0]: Two other ones that are also powerful are ImageMagick and Pandoc. [1]: I initially wrote this in Bash, but later converted the code to Python to better handle command line arguments and allow things like using config files.
- coronadisaster 6y agoI just used ffmpeg to extract audio from a video and audacity to remove audio noise... love those open source tools
- whoisjohnkid 6y agoffmpeg is absolutely phenomenal. I recently used it to combine multiple separate audio tracks from a webrtc session into a single file. For anyone that hates compiling ffmpeg from source, John Van Sickle does an amazing job of doing the work for you by making binaries publicly available for each version: https://johnvansickle.com/ffmpeg/ https://johnvansickle.com/ffmpeg/
- StanAngeloff 6y agoI rely on those static builds and they are a lifesaver. Careful with linking to this website from automation scripts, etc. as the downloads are regularly swapped and only certain versions (IIRC latest in a point release) are kept available. E.g., 4.3.0 will be taken down once 4.3.1 is available, however 4.3.1 might be permanently moved to the archive if it shall be the last 4.3.? release before 4.4.0.
- whoisjohnkid 6y agogreat point. What I've done in the past is have a jenkins job that points at the latest release and trigger job manually when you know you want to upgrade to the latest version.
- StanAngeloff 6y agoI don't usually rely on a specific version and am fine running a release (or five) behind. If you don't need the latest and greatest pointing to an archived old release may save you some hassle.
- lozf 6y agoGood resource, but I usually end up building my own to take advantage of the improved AAC encoding with libfdk-aac which can't be distributed pre-compiled.
- 0x402DF854 6y agoI use FFMPEG as a thermostat to keep my apartment nice and warm :) I encode all of my videos (phone, DSLR, dash cameras) to h265 on my Ryzen workstation when it's not use. I have a primitive "PID-controller" script pulling temperatures from influxdb (data collected using a few esp8266 with ds18b20 sensors) and adjusting -threads parameter accordingly. It automatically adjusts presets (slow, veryslow, placebo, etc) depending on number of videos in the queue, so it never runs out of material to encode :) It saves me from using stinky baseboard heaters and reduces my HDD bills!
- iruoy 6y agohttps://xkcd.com/1172/ https://xkcd.com/1172/
- collinmanderson 6y agoThis is amazing. If your alternative is a non-heatpump electric heater, then why not? :)
- stevievee 6y agoI agree with the shared sentiment that FFmpeg is awesome. It's the only way I can get mkv converted for playback in browsers. I believe that browsers don't support mkv/aac natively because of licensing but I would be interested if anyone has a different solution for browser playback.
- loser777 6y agoI use ffmpeg to run a fun twitch stream VOD to highlight reel pipeline. Example with explicit language: https://www.youtube.com/watch?v=ETR3IXyGgEo https://www.youtube.com/watch?v=ETR3IXyGgEo. ffmpeg handles everything from frame-extraction (to feed a deep learning model), audio spectrogram calculation (also features for the model), video trimming (to cut the interesting clips), video concatenation (to join the clips), and the text overlay
- memexy 6y agoWhat is the deep learning model and what does it do?
- loser777 6y agoIt's just a standard vision convnet like ResNet-18, or ResNet-50. It gets fed facecam with an audio spectrogram concatenated to it (pretty hacky, but seems to help). All it does is binary prediction of {interesting, not interesting}, and I use some heuristics to pick regions of video based on how many frames were "interesting" to the model. Feel free to take a look at the (research quality at best) code: https://github.com/eqy/autotosis https://github.com/eqy/autotosis
- memexy 6y agoThanks.
- rurban 6y agoBreaks chromium, at least on arch. Beware. https://bugs.archlinux.org/task/67020?project=1&string=chromium https://bugs.archlinux.org/task/67020?project=1&string=chrom...
- purplezooey 6y agoLove me some ffmpeg, but would be nice to have some bullet point summaries of updates in the release notes instead of pointing to the changelog dump. I know there is some information loss, yadda yadda
- d136o 6y agonice, I’ve been toying with it recently because I wanted to get some video on the Apple TV I’ve got connected to my TV. In the process I was reminded of how important Intellectual Property is in our field. I dowloaded a video from youtube [0] and learned that the video is in a WEBM container for certain types of video compression formats (VP8/9 + another one) as well as vorbis/opus audio. It turns out that to get the best quality on the Apple TV, I should encode to HEVC (H265) video and I guess aac audio. There’s some sort of history behind this divide. A pain in the neck for people who want to toy around with video, but huge decisions for these companies in choosing the formats they use to move these bits around. So I can use ffmpeg to re-encode into the new format, and I can play it on my apple devices if the file is local, but I can’t shoot it via UDP to the TV. When VLC (app on apple tv) is listening on a port for UDP I only get choppy audio: Doing this on the sending side doesn’t seem to work: ffmpeg \ -re -i video_stream_ready.mp4 \ -c:v copy -c:a copy \ -f mpegts udp:$APPLETVIP:2300 has anyone toyed around with shooting pre-generated (or even real time generated) video at their TV this way? Being stuck at home makes me want to make something artsy that could be fun to look at through the day. [0] https://youtu.be/wPXSFVruIHI https://youtu.be/wPXSFVruIHI
- oskarahl 6y agoFFmpeg started out as frustrating for me but the more I use it the more I love it. The ability to split videos into smaller segments and applying different filters to each segment and finally combining the segments is just great. I've been working on a web-based video editor for app features: https://glitter.now.sh/ https://glitter.now.sh/ and i've had tons of fun tweaking FFmpeg. My only wish would be that the documentation would include video samples for the example commands (I'd love to help with this).
- mattnguyen 6y agoWe recently started building a video player for go-flutter-desktop using FFmpeg. It's been immensely frustrating as the audio and video is slightly out of sync and requires a bit of tuning. If anyone has experience with FFmpeg, I'd greatly appreciate if you could take a look! https://github.com/telefuel/video_player_testbed/issues/1 https://github.com/telefuel/video_player_testbed/issues/1
- timonoko 6y agoWhat is wrong with these people? Why the "libvidstab" is always disabled? Are they trying to save valuable disk space? -- Libvidstab works quite good and better than anything else readily available in Linux.
- bsenftner 6y agoFirst I've heard of this library. The github page is pretty informative. I looks quite worthwhile, thanks for informing me.
- jokoon 6y agoI wonder how hard it would be to build a video editing suite with FFMPEG Avidemux is nice, but currently I only see vinci as an alternative to premiere.
- ctrager 6y agoI've been feeling stupid these past few days because I've been using ffmpeg for the first time. I've been trying to take an rtsp stream from a security camera and transcode it, restream it, to something that can be viewed in an html video tag. It works, with poor quality, in Firefox, but in Chrome just a green screen. (I also tried using vlc/cvlc's streaming). I've been feeling stupid because of all the copy/pasting from the web into the command line without understanding what I was doing.
- bsenftner 6y agoIf anyone is compiling their own version for use with IP video streams, here is a modification that adds to the av_read_frame() function a call to the avformat interrupt callback. https://gist.github.com/bsenftner/ba3d493fa36b0b201ffd995e8c2c60a2 https://gist.github.com/bsenftner/ba3d493fa36b0b201ffd995e8c... This effectively adds the ability to monitor the IP stream for unexpected termination. The current implementation of av_read_frame() will hang if, for example, a human trips over a camera's cables and the stream abruptly terminates. Without modification to the API, this change to av_read_frame() calls the avformat interrupt callback each loop through av_read_frame()'s reading of packets. All the callback needs to do is look at the time, and signal error if the time between callbacks exceeds something reasonable. I am not sure why, but this change was not accepted by the ffmpeg developers. I find it essential for working with IP video and IP video cameras.