Summary
The Linux AV1 decoding fix from #1209 (which closed #908) is merged into both 4.x and 5.x, but it has only been released on the 4.x line. The newest 5.x wheel on PyPI, 5.0.0.93 (uploaded 2026-07-02), predates the merge (2026-07-27, 314eb3d2), so 5.x users on Linux still cannot read any AV1 video.
Could a 5.x wheel be published that includes the dav1d build from #1209?
Reproduction
Linux x86_64, Python 3.12, wheels from PyPI. Test files made with FFmpeg 8.1:
ffmpeg -f lavfi -i testsrc2=s=640x360:r=25:d=2 -c:v libsvtav1 -pix_fmt yuv420p av1-8bit.mp4
ffmpeg -f lavfi -i testsrc2=s=640x360:r=25:d=2 -c:v libsvtav1 -pix_fmt yuv420p10le av1-10bit.mp4
ffmpeg -f lavfi -i testsrc2=s=640x360:r=25:d=2 -c:v libx264 -pix_fmt yuv420p h264.mp4
import cv2
for f in ["av1-8bit.mp4", "av1-10bit.mp4", "h264.mp4"]:
cap = cv2.VideoCapture(f, cv2.CAP_FFMPEG)
print(f, "opened:", cap.isOpened(), "read:", cap.read()[0])
| Wheel |
av1-8bit.mp4 |
av1-10bit.mp4 |
h264.mp4 |
opencv-python-headless==4.14.0.94 |
read: True |
read: True |
read: True |
opencv-python-headless==5.0.0.93 |
read: False |
read: False |
read: True |
(opencv-python==5.0.0.93 behaves the same as the headless wheel.)
With 5.0.0.93, isOpened() returns True, so the failure is silent apart from the FFmpeg log:
[av1 @ 0x...] Your platform doesn't support hardware accelerated AV1 decoding.
[av1 @ 0x...] Failed to get pixel format.
[av1 @ 0x...] Get current frame error
Diagnosis
Querying the libavcodec bundled in the 5.0.0.93 wheel (opencv_python.libs/libavcodec-*.so.62.28.101) with avcodec_find_decoder_by_name:
| Decoder |
Present |
av1 (FFmpeg's native decoder, which needs a hwaccel) |
yes |
libdav1d |
no |
libaom-av1 |
no |
So there is no software AV1 decoder, which is what #1209 adds. (The wheel does ship a libaom shared object, but libavcodec does not register a decoder for it.)
Workaround
Pin opencv-python(-headless)==4.14.0.94, or transcode to H.264 before reading.
Related
Summary
The Linux AV1 decoding fix from #1209 (which closed #908) is merged into both
4.xand5.x, but it has only been released on the 4.x line. The newest 5.x wheel on PyPI, 5.0.0.93 (uploaded 2026-07-02), predates the merge (2026-07-27,314eb3d2), so 5.x users on Linux still cannot read any AV1 video.Could a 5.x wheel be published that includes the dav1d build from #1209?
Reproduction
Linux x86_64, Python 3.12, wheels from PyPI. Test files made with FFmpeg 8.1:
av1-8bit.mp4av1-10bit.mp4h264.mp4opencv-python-headless==4.14.0.94opencv-python-headless==5.0.0.93(
opencv-python==5.0.0.93behaves the same as the headless wheel.)With 5.0.0.93,
isOpened()returnsTrue, so the failure is silent apart from the FFmpeg log:Diagnosis
Querying the libavcodec bundled in the 5.0.0.93 wheel (
opencv_python.libs/libavcodec-*.so.62.28.101) withavcodec_find_decoder_by_name:av1(FFmpeg's native decoder, which needs a hwaccel)libdav1dlibaom-av1So there is no software AV1 decoder, which is what #1209 adds. (The wheel does ship a
libaomshared object, but libavcodec does not register a decoder for it.)Workaround
Pin
opencv-python(-headless)==4.14.0.94, or transcode to H.264 before reading.Related
4.xand present on5.xas314eb3d2