11## Hardware Acceleration
22
3- OpenShot now has experimental support for hardware acceleration, which uses 1 (or more)
3+ OpenShot now has experimental support for hardware acceleration, which uses 1 (or more)
44graphics cards to offload some of the work for both decoding and encoding. This is
5- very new and experimental (as of May 2019), but we look forward to "accelerating"
5+ very new and experimental (as of May 2019), but we look forward to "accelerating"
66our support for this in the future!
77
88The following table summarizes our current level of support:
99
1010| | Linux Decode | Linux Encode | Mac Decode | Mac Encode | Windows Decode | Windows Encode | Notes |
1111| --------------------| --------------| --------------| ------------| ------------| ----------------------| ----------------| ----------------|
1212| VA-API | Verified | Verified | - | - | - | - | Linux Only |
13- | VDPAU | Verified | Verified | - | - | - | - | Linux Only |
14- | CUDA (NVDEC/NVENC) | Verified | Verified | - | - | - | Verified | Cross Platform |
13+ | VDPAU | Verified(+) | N/A(++) | - | - | - | - | Linux Only |
14+ | CUDA (NVDEC/NVENC) | Fails(+++) | Verified | - | - | - | Verified | Cross Platform |
1515| VideoToolBox | - | - | Verified | Crashes | - | - | Mac Only |
1616| DXVA2 | - | - | - | - | Fails (green frames) | Verified | Windows Only |
1717| D3D11VA | - | - | - | - | Fails (green frames) | - | Windows Only |
@@ -21,9 +21,9 @@ The following table summarizes our current level of support:
2121
2222* HW accel is supported from FFmpeg version 3.2 (3.3 for nVidia drivers)
2323* HW accel was removed for nVidia drivers in Ubuntu for FFmpeg 4+
24- * We could not manage to build a version of FFmpeg 4.1 with the nVidia SDK
25- that worked with nVidia cards. There might be a problem in FFmpeg 4+
26- that prohibits this.
24+ * (+) VDPAU for some reason needs a card number one higher than it really is
25+ * (++) VDPAU is a decoder only.
26+ * (+++) Green frames
2727
2828** Notice:** The FFmpeg versions of Ubuntu and PPAs for Ubuntu show the
2929same behaviour. FFmpeg 3 has working nVidia hardware acceleration while
@@ -106,23 +106,23 @@ on Mint 19.1 that supports the GPU on nVidia cards. A version of openshot
106106with hardware support using these libraries could use the nVidia GPU.
107107
108108** BUG:** Hardware supported decoding still has some bugs (as you can see from
109- the chart above). Also, the speed gains with decoding are not as great
109+ the chart above). Also, the speed gains with decoding are not as great
110110as with encoding. Currently, if hardware decoding fails, there is no
111111fallback (you either get green frames or an "invalid file" error in OpenShot).
112112This needs to be improved to successfully fall-back to software decoding.
113113
114- ** Needed:**
115- * A way to get options and limits of the GPU, such as
114+ ** Needed:**
115+ * A way to get options and limits of the GPU, such as
116116 supported dimensions (width and height).
117- * A way to list the actual Graphic Cards available to FFmpeg (for the
118- user to choose which card for decoding and encoding, as opposed
117+ * A way to list the actual Graphic Cards available to FFmpeg (for the
118+ user to choose which card for decoding and encoding, as opposed
119119 to "Graphics Card X")
120120
121121** Further improvement:** Right now the frame can be decoded on the GPU, but the
122- frame is then copied to CPU memory for modifications. It is then copied back to
122+ frame is then copied to CPU memory for modifications. It is then copied back to
123123GPU memory for encoding. Using the GPU for both decoding and modifications
124- will make it possible to do away with these two copies. A possible solution would
125- be to use Vulkan compute which would be available on Linux and Windows natively
124+ will make it possible to do away with these two copies. A possible solution would
125+ be to use Vulkan compute which would be available on Linux and Windows natively
126126and on MacOS via MoltenVK.
127127
128128## Credit
0 commit comments