We have implemented very fast MXF converter which is working on NVIDIA GPU. This is high performance JPEG2000 encoder and decoder. It could be used for fast JPEG2000 decompression and further video processing. Our MXF converter can process input MXF files or streams on GPU and then transform them into MP4 or alike. MXF converter could be a part of video transcoding pipeline.
Features of MXF Converter on CUDA
One can convert MXF files to different video or audio formats at the same time. Just choose output format from profile drop-down for each file respectively and then hit convert image button to finish all file conversions.
How to convert MXF files with FFmpeg?
Apart from our sample application from Fastvideo SDK which is intended for MXF encoding or decoding on GPU, we've also implemented a solution for FFmpeg to be able to convert and to transcode MXF (J2K) files or streams with FFmpeg.
In general, if we need to convert MXF files with FFmpeg, we have to create a codec which is capable of JPEG2000 decoding and to build FFmpeg with source codes of that codec. Most of users at the moment are doing JPEG2000 decoding at FFmpeg via OpenJPEG library, which is sofisticated, but very slow, because J2K algorithm is very complicated and CPU-based processing just can't give good performance even at multithreading, and this is vitally important for realtime applications.
Slow performance of FFmpeg with OpenJPEG was the reason why we've implemented FFmpeg J2K codec for MXF encoding or decoding on CUDA. That solution is fully based on our JPEG2000 codec from Fastvideo SDK and here you can see the benchmarks or J2K decoding on GPU.
Current version of our FFmpeg J2K codec (which is called jp2k_cuda) is working with MXF (J2K) files to accomplish J2K decoding or transcoding on GPU. We've implemented on CUDA just J2K decoding part, all the rest is done by FFmpeg.
This is quite conventional task to convert MXF with J2K-encoded stream to H.264 or HEVC (H.265) via FFmpeg with maximum possible performance. CPU-based solutions are based on libx264 (libx265) and OpenJPEG are increadibly slow, though GPU-based transcoding solutions (jp2k_cuda + nvenc or jp2k_cuda + hevc) could work faster than real time.