Details
-
Bug
-
Resolution: Incomplete
-
P2: Important
-
None
-
6.5
-
Windows 11 22H2
RTX 3070 w/ driver v526.86
Ryzen 5 3600
-
-
1e8653062 (dev), 254836ec8 (6.5), 4a3df7223 (6.4), 0b8ce3cca (dev), a73e7b8ee (6.5), f0c75fafa (dev), ab46759ee (6.6), 1f01fdd6b (6.5)
Description
I'm using last dev Qt version installed on a Windows 11 22H2 platform from online installer and forcing FFmpeg with QT_MEDIA_BACKEND env.
I made a simple test program built in MSVC to gather frames and show them in a QLabel to test alpha channel.
All provided files can be opened without any problem with FFmpeg v5.1.2-LGPL Windows build.
This is HW decoding frameworks printed by debug and encode/decode supported file format:
Available HW decoding frameworks: dxva2 d3d11va ENCODE QList(QMediaFormat::WMV, QMediaFormat::Matroska, QMediaFormat::MPEG4, QMediaFormat::Ogg, QMediaFormat::FLAC, QMediaFormat::AAC, QMediaFormat::QuickTime, QMediaFormat::Wave, QMediaFormat::WebM, QMediaFormat::Mpeg4Audio, QMediaFormat::WMA, QMediaFormat::AVI) DECODE QList(QMediaFormat::WMV, QMediaFormat::Matroska, QMediaFormat::MPEG4, QMediaFormat::Ogg, QMediaFormat::FLAC, QMediaFormat::AAC, QMediaFormat::QuickTime, QMediaFormat::Wave, QMediaFormat::WebM, QMediaFormat::Mpeg4Audio, QMediaFormat::WMA, QMediaFormat::AVI)
What I tested are the following:
File Ext | FFmpeg PixelFormat | QVideoFrame PixelFormat | Test |
---|---|---|---|
MOV | argb | ARGB8888 | Frame with alpha but has some artifact near edges. |
WEBM | yuv420p (vp9) | NV12 | FFmpeg uses vp9 instead of libvpx-vp9 to load alpha channel (you can test it on chrome). Frames are shown without alpha and print error: "failed to get textures for frame true" in debug |
GIF | bgra | BGRA8888 | Frames are correctly shown |
PNG | rgba | - | Unable to find a codec to open PNG. It doesn't open the media |
MP4 | yuv420p | N12 | Frames are correctly shown but print error: "failed to get textures for frame true" in debug |
JPG | yuvj444p | - | Unable to find a codec to open JPG. It doesn't open the media |
WEBP | argb | ARGB8888 | Frame with alpha but has big artifacts near edges |
AVI | bgra | BGRA8888 | It loads a frame since it print out PixelFormat but after that app will crash without printing an error |
I didn't tested FFmpeg's filters since I can't find an API fori it