Closed WyattBlue closed 2 weeks ago
Any chance support for ffmpeg
7 could make it out before Oct?
@daveisfera
Any chance support for
ffmpeg
7 could make it out before Oct?
FFmpeg 7 removes many deprecated APIs that PyAV still depends on. PyAV would have to changes its public API to match the new ffmpeg APIs, particularly for audio. It would take a lot of work to move the new APIs, then yet more work for figure out an upgrade path for PyAV users. Due to all the time required, I'm anticipating our release to match that for Python 3.13.
Our release dates are still tentative, it could be released in September if the work is done and their is a Python 3.13 release candidate available.
Totally makes sense! Definitely appreciate all of the work and looking forward to the release!
The FFMPEG 6 documentation of FFMPEG 6 is useful in learning how to transition to FFMPEG7 I made a personal attempt in https://github.com/hmaarrfk/PyAV/pull/2 As @WyattBlue mentionned, the real question is what to do about the AudioLayout class of PyAv.
Since I don't see it mentioned, numpy 2.0 is going to come out soon as is probably worth taking into account: #1401
I disagree with dropping Python 3.8 already, especially in a minor release. Python 3.8 only reaches end-of-life in another 5 months.
Dropping Python 3.8 before its end of life makes it impossible to adopt the latest versions of PyAV
in projects which support all current Python releases. For instance, I am unable to update aiortc
.. which was the reason I got involved in PyAV
!
@jlaine Okay, we can build wheels for Python 3.8. It was slowing down CI, but now that smoke tests and publishing is split, it's no longer a big deal.
I don't see any reason to delay 12.1.0
's release. If you don't see anything wrong, I could make the release in a day.
Final Checklist:
tests
CI / Build Python 3.8 again@WyattBlue it looks like the binary FFmpeg builds for macOs are broken, they drag in X11 libraries for the wrong macOs version. This is something which should be fixed today, I explicitly addressed this in my updates to pyav-ffmpeg.
I also disagree with dropping FFmpeg 5, this is definitely not minor version stuff.
Moreover, FFmpeg 5 is going to be around for a while, for instance it's the version that ships with the Debian stable release.
I also disagree with dropping FFmpeg 5, this is definitely not minor version stuff.
@jlaine Re-adding support for FFmpeg 5 now is difficult because I've promised to remove it for this release since late April.
You could:
13.0.0
, which is technically easy, however, I find this very unsatisfying.12.1.0
starting from 12.0.0
then cherry pick commits that still work with FFmpeg 5. 12.1.0
starting from main
then revert commits incompatible with FFmpeg 5.Moreover, FFmpeg 5 is going to be around for a while, for instance it's the version that ships with the Debian stable release.
People using old versions of ffmpeg can use old versions of pyav. Debian right now only ships av 11.0.0 or lesser. Also, FFmpeg 7 is going to be around for a while and I would like pyav to support it sooner rather than later.
We're using semantic versioning, so this means no breaking changes within a major release. So, either:
AFAICT, commit e884e6cd1dac2646fd002b441ca4fdfb2ef818c5 just stopped testing against FFmpeg 5, so reverting it should be trivial.
EDIT: I just put together PR #1407 which restores tests against FFmpeg 5.x, and the tests do pass, so we are still compatible with FFmpeg 5. Let's merge it, and cut release 12.1.0 as is.
Here are my thoughts on the current release schedule:
v13.0.0 Release date: September 1st or 2nd
vx.x.x Release date: 2028
v12.0.0 Released: March 21st, 2024
v12.1.0 Released: May 30, 2024