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
Attachments
For Gerrit Dashboard: QTBUG-108403 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
453152,4 | Fix crash with ffmpeg on specific video files | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
453247,2 | Fix crash with ffmpeg on specific video files | 6.5 | qt/qtmultimedia | Status: MERGED | +2 | 0 |
453248,3 | Fix crash with ffmpeg on specific video files | 6.4 | qt/qtmultimedia | Status: MERGED | +2 | 0 |
454018,4 | Handle duration in ffmpeg stream metadata | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
454110,2 | Handle duration in ffmpeg stream metadata | 6.5 | qt/qtmultimedia | Status: MERGED | +2 | 0 |
504796,6 | Fix formats conversion in ffmpeg video frames | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
505334,2 | Fix formats conversion in ffmpeg video frames | 6.6 | qt/qtmultimedia | Status: MERGED | +2 | 0 |
505394,2 | Fix formats conversion in ffmpeg video frames | 6.5 | qt/qtmultimedia | Status: MERGED | +2 | 0 |