If you want to know a bit more about what is important in this major release, you can watch my presentation about FFmpeg 6.0 at Fosdem:<p><a href="https://fosdem.org/2023/schedule/event/om_vlc/" rel="nofollow">https://fosdem.org/2023/schedule/event/om_vlc/</a> (Video + Slides)<p>It’s a bit less dry than the changelog, notably for the evolutions of the APIs.<p>What’s also important is the changes about the release schedule that we’ve been pushing with the community. Major version every year at the beginning of the year, with ABI and API break, minor releases during the year and an LTS every other year…
Fun fact of the day: ffmpeg is written by Fabrice Bellard, who among other impressive things, wrote the JS PC emulator capable of running windows 2000 in a browser over 10 years ago that got me fascinated with emulators in general.<p><a href="https://bellard.org/jslinux/tech.html" rel="nofollow">https://bellard.org/jslinux/tech.html</a>
Changelog:<p>* Radiance HDR image support<p>* ddagrab (Desktop Duplication) video capture filter<p>* ffmpeg -shortest_buf_duration option<p>* ffmpeg now requires threading to be built<p>* ffmpeg now runs every muxer in a separate thread<p>* Add new mode to cropdetect filter to detect crop-area based on motion vectors and edges<p>* VAAPI decoding and encoding for 10/12bit 422, 10/12bit 444 HEVC and VP9<p>* WBMP (Wireless Application Protocol Bitmap) image format<p>* a3dscope filter<p>* bonk decoder and demuxer<p>* Micronas SC-4 audio decoder<p>* LAF demuxer<p>* APAC decoder and demuxer<p>* Media 100i decoders<p>* DTS to PTS reorder bsf<p>* ViewQuest VQC decoder<p>* backgroundkey filter<p>* nvenc AV1 encoding support<p>* MediaCodec decoder via NDKMediaCodec<p>* MediaCodec encoder<p>* oneVPL support for QSV<p>* QSV AV1 encoder<p>* QSV decoding and encoding for 10/12bit 422, 10/12bit 444
HEVC and VP9<p>* showcwt multimedia filter<p>* corr video filter<p>* adrc audio filter<p>* afdelaysrc audio filter<p>* WADY DPCM decoder and demuxer<p>* CBD2 DPCM decoder<p>* ssim360 video filter<p>* ffmpeg CLI new options: -stats_enc_pre[_fmt],
-stats_enc_post[_fmt],<p>* -stats_mux_pre[_fmt]<p>* hstack_vaapi, vstack_vaapi and xstack_vaapi filters<p>* XMD ADPCM decoder and demuxer<p>* media100 to mjpegb bsf<p>* ffmpeg CLI new option: -fix_sub_duration_heartbeat<p>* WavArc decoder and demuxer<p>* CrystalHD decoders deprecated<p>* SDNS demuxer<p>* RKA decoder and demuxer<p>* filtergraph syntax in ffmpeg CLI now supports passing
file contents as option values, by prefixing option name with '/'<p>* hstack_qsv, vstack_qsv and xstack_qsv filters
I absolutely love ffmpeg, but for the life of me I cannot understand how its pipeline system works.<p>Each time I need to use it, I attempt to construct the command myself, but end up giving up and consulting StackOverflow. Amazingly, someone has usually done the exact thing I need to do and posted their command line to StackOverflow, so I'm never out of luck!<p>How do I actually start understanding how ffmpeg works? I want to be an ffmpeg power user.
From the changelog [1]:<p>> - DTS to PTS reorder bsf<p>Interesting, I wonder what this is / why you'd want it. In particular, when you have the DTS but not the PTS.<p>The recent gstreamer 1.22 release [2] had what I read as the opposite—calculate a plausible DTS from the order and PTS. They did a nice job of explaining why it's useful. AFAICT, this approach is the only viable way to get B frames to work properly from a received RTP stream.<p>> H.264/H.265 timestamp correction elements ... Muxers are often picky and need proper PTS/DTS timestamps set on the input buffers, but that can be a problem if the encoded input media stream comes from a source that doesn't provide proper signalling of DTS, such as is often the case for RTP, RTSP and WebRTC streams or Matroska container files. Theoretically parsers should be able to fix this up, but it would probably require fairly invasive changes in the parsers, so two new elements h264timestamper and h265timestamper bridge the gap in the meantime and can reconstruct missing PTS/DTS.<p>Looks like the ffmpeg thing is dts2pts_bsf.c. [3] I haven't really read the implementation, but I was hoping the comment at the top would illuminate things, but "Derive PTS by reordering DTS from supported streams" isn't enough for me.<p>[1] <a href="https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/6.0:/Changelog" rel="nofollow">https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/rel...</a><p>[2] <a href="https://gstreamer.freedesktop.org/releases/1.22/" rel="nofollow">https://gstreamer.freedesktop.org/releases/1.22/</a><p>[3] <a href="https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/6.0:/libavcodec/dts2pts_bsf.c" rel="nofollow">https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/rel...</a>
I love software that just does what it’s supposed to do and is so good at it that it’s an underpinning for other projects.<p>FFmpeg, curl, nmap, et., al.
Do any of you know if this has Dolby AC-4 support? Ticket 8349 [1] has been open for years to add this, but it's not there yet. This would be very nice so we can watch ATSC 3.0 OTA broadcasts via FFmpeg-based things like Plex.<p>(Currently if one uses something like a SiliconDust HDHomeRun, viewing an ATSC 3.0 stream requires using their app/player, which uses a SiliconDust cloud service to do the decoding. It'd be really nice to have a not-network-dependent way to view/hear OTA broadcasts.)<p>[1] <a href="https://trac.ffmpeg.org/ticket/8349" rel="nofollow">https://trac.ffmpeg.org/ticket/8349</a>
ffmpeg is my go-to re-encoder. I didn't know ffprobe existed until I read some "howto" and its also increadibly useful as a way to get fundamental video and audio stream data out as e.g. csv or json.<p>So I can run an ffprobe script to get x,y info out, decide if the video needs re-encoding, pass to an ffmpeg call which does fast or veryfast settings to reset the x/y scale (for instance)<p>It's also unquestionably 'self documenting' because all of the sheharazade 1001 options are listed in --help. The problem is knowing which one will make the horse speak.
I love ffmpeg, a single command of `ffmpeg -ss 01:15:42 -to 01:16:00 -i example.mp4 -c copy output.mp4` will let you create a video clip at a certain point in time from a larger video without decoding/encoding it.<p>I wrote a blog post and made a demo video the other day going over using this feature at: <a href="https://nickjanetakis.com/blog/create-video-clips-with-ffmpeg-in-seconds" rel="nofollow">https://nickjanetakis.com/blog/create-video-clips-with-ffmpe...</a>
I don't know if there's any work being done on this, but I wish ffmpeg had better support for modern ML based filters, like super resolution, frame interpolation, segmentation, automatic subtitles, etc. There was an ml filter made years ago as part of a Google summer of code projekt, which includes super resolution, but it's difficult to use and you need to train or find pretrained model files. ML is where video and audio filter research is happening at the moment, hopefully ffmpeg can get a good pipeline going. And please use an inference library that can run on all computers.
I had an API breakage with audio one year ago. Is the "new" seeking API up and running? (because I have segfaults while seeking in mp4 video files with the current one), and I am ready to make the changes in my media player.<p>Until they keep away from c++ or the ISO planned obsolescence of the C language, keep the SDK minimal, I guess I tolerate their excessive heavy use of nasm macro preprocessor.<p>If the video is mostly about versioning, well since I use a weekly ffmpeg git...
I wrote a large and messy script to encode a random amount of videos of any aspect ratio so it can fit in a mosaic with the xstack filter.<p>I think there are still slight audio sync issues, because I should reencode video files individually but I do a single pass instead to not deal with leftover files.<p>I'm quite happy with the result.<p>I wish I could write a script to do some basic effect on a video, like adding some moving text. The ideal would be to have an animated SVG file and make a video out of it.
I love the version names, all famous scientists (Von Neumann, Riemann, Lorentz etc.)!<p>Though I am curious whether there is a specific reasoning behind a name in relation to a version (alphabetically, numerically, chronologically etc.)?
ffmpeg has got to be my favorite media tool ever. :)<p>It has replaced all kinds of various programs I used to use, such as netpbm and imagemagick. It's just better.