FFmpeg 8.1

(ffmpeg.org)

153 points | by gyan 2 hours ago

9 comments

  • edgarvaldes 23 minutes ago
    One of the best open-source tools out there. I'm a frequent user of Plex, Jellyfin, Tunarr, local music files, etc. I use it weekly to extract subtitles, trim videos, convert music formats, and remove audio tracks. After writing the previous paragraph, I realized I've never donated to the project; it's time to change that.
  • pandaforce 1 hour ago
    Khronos published a post on the Vulkan compute codecs in FFmpeg: https://www.khronos.org/blog/video-encoding-and-decoding-wit...
  • ghgr 1 hour ago
    > Oh there's a new version of ffmpeg, I'll just quickly build it from source... no I can't wait I'll download the binary

    https://www.youtube.com/watch?v=9kaIXkImCAM

    • asveikau 34 minutes ago
      I tend to build ffmpeg from source because package managers don't usually include support for patented codecs.

      (Yes I know there are repos to get binaries for some, things like deb-multimedia.)

    • shevy-java 29 minutes ago
      Building ffmpeg itself from source is actually quite easy.

      The hardest part IMO is getting the necessary codecs to work; this can take a little while. If you know what audio and video codecs you want and need, and if you get them installed properly, then compiling ffmpeg is really simple and straightforward. It works almost always for me, and I have compiled ffmpeg from source for like +10 or even +15 years.

      For reference purposes, my current configure options are:

        ./configure --prefix=/usr/ --enable-gnutls --enable-gpl --enable-libmp3lame --enable-libaom --enable-libopus --enable-libspeex --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-nonfree --enable-pthreads --enable-shared --enable-version3 --extra-libs=\"-ldl\" --disable-doc --disable-libopenjpeg --disable-libpulse --disable-static
      
      Probably more codecs could be added, and some options may not be necessary anymore (I changed this last ... years ago, too), but this works for the most part fairly well.

      One focus I have is mostly on a few .mp4 files, and for these I think you kind of want x264 x265 and so forth (I think one more codec from google too or so). But it is really quite trivial once you are past the codecs step. You can also start simple with just a few codecs, e. g. one good audio codec and one good video codec. One reason I like to have ffmpeg support many codecs is so I can use mpv, which in itself is really awesome; I like it more than vlc, which is also ok though.

  • gyan 2 hours ago
    Changelog:

    ffprobe -codec option

    EXIF Metadata Parsing

    gfxcapture: Windows.Graphics.Capture based window/monitor capture

    hxvs demuxer for HXVS/HXVT IP camera format

    MPEG-H 3D Audio decoding via mpeghdec

    D3D12 H.264 encoder

    drawvg filter via libcairo

    ffmpeg CLI tiled HEIF support

    D3D12 AV1 encoder

    ProRes Vulkan hwaccel

    DPX Vulkan hwaccel

    Rockchip H.264/HEVC hardware encoder

    Add vf_scale_d3d12 filter

    JPEG-XS parser

    JPEG-XS decoder and encoder through libsvtjpegxs

    JPEG-XS raw bitstream muxer and demuxer

    IAMF Projection mode Ambisonic Audio Elements muxing and demuxing

    Add vf_mestimate_d3d12 filter

    xHE-AAC Mps212 decoding support (experimental)

    Remove the old HLS protocol handler

    Vulkan compute codec optimizations

    swscale Vulkan support

    LCEVC metadata bitstream filter

    Add vf_deinterlace_d3d12 filter

    ffprobe: only show refs field in stream section when reading frames

    ProRes Vulkan encoder

    LCEVC parser

    LCEVC enhancement layer exporting in MPEG-TS

    • yboris 1 hour ago
      TIL: JPEG XS - an image and video codec that offers both visually and mathematically lossless quality for low latency implementations.

      Additionally, JPEG XS compressed content is indistinguishable from the original uncompressed content.

      https://en.wikipedia.org/wiki/JPEG_XS

      • voidUpdate 1 hour ago
        Isn't the point of JPEG to have lossy compression for your photos that still looks fine? As opposed to something like PNG, which has lossless compression
        • johntb86 51 minutes ago
          "JPEG" is short for Joint Photographic Experts Group, an ISO/ITU group that creates a lot of imaging standards. The JPEG image format you're thinking of is only one of the formats they've created.
        • bydo 52 minutes ago
          The Joint Photographic Experts Group manages many standards, generally each called "JPEG [something]". The one we most commonly call "JPEG" is just one of them.
        • pjc50 58 minutes ago
          Reading that it looks like the point of JPEG-XS is to have near-lossless compression for raw photo and video data while having extremely high throughput.
          • zamadatix 29 minutes ago
            JPEG XS supports either near lossless or truly lossless encoding depending on encoder configuration.
      • CharlesW 1 hour ago
        > Additionally, JPEG XS compressed content is indistinguishable from the original uncompressed content.

        It can be indistinguishable, as long as you stick with lossless or very low compression ratios. It falls apart at typical JPEG XL compression ratios.

      • iso1631 1 hour ago
        We use JXS when latency is critical. Most h24/265 decodes will have a 10 frame glass-glass delay, JXS drops that to 3 or 4, at a cost of bandwidth (our UHD jxs streams are 1.5gbit rather than 200mbit for hevc)
    • bob1029 1 hour ago
      > gfxcapture: Windows.Graphics.Capture based window/monitor capture

      > This source provides low overhead capture of application windows or entire monitors. The filter outputs hardware frames in d3d11 format; use hwdownload,format= if system memory frames are required.

      This would strongly alter my plans if I were to develop an OSS Discord alternative. Chromium originally looked like a better core to start with largely due to its mature screen capture API. WebRTC is the other big thing, but there are other ways to do that. Native desktop apps (i.e., not browser based) are beginning to look much more compelling to me now.

      • pjc50 59 minutes ago
        If you were doing this, consider cribbing from https://github.com/obsproject/obs-studio/tree/master/plugins... which offers a variety of solutions including some rather exciting looking process injection (called "game" there).

        I wonder if "entire chat app functions as OBS plugin" would work? Would solve the AV streaming side of the functionality.

      • lostmsu 1 hour ago
        You could always use Windows.Graphics.Capture directly.
  • shevy-java 32 minutes ago
    FFmpeg is really great. The only wish I'd have is for the usage to become simpler - both for regular stuff, but also for advanced filtering.

    If anyone remembers, avisynth was pretty cool back in the days. You could kind of script video/audio manipulations, a bit like a UNIX/Linux pipe, but kind of simpler, in my opinion. FFmpeg allows for many similar operations, but remembering anything here is ... hard. I'd love for the whole usage API to become much simpler, but it seems nobody among the ffmpeg dev team is considering this. :(

    I can't be the only one with that wish though ...

    It does not diminish ffmpeg being so great in general, but I think it could be better.

    • daneel_w 4 minutes ago
      If you're just looking for an easier solution for encoding video ("regular stuff") then Handbrake is the go-to tool for that.
  • brcmthrowaway 47 minutes ago
    How much of this release was done by to corporate/big tech employees?
  • megous 1 hour ago
    I wouldn't get too excited about rockchip hw encoding. It's rkmpp based, not an upstream solution. You'd need Rockchip kernel for this, I guess.
    • stevemk14ebr 43 minutes ago
      It's still a big deal, you had to compile ffmpeg yourself before
  • junelee77 29 minutes ago
    nice job