Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between x264 and ffmpeg? [duplicate]

Tags:

c++

ffmpeg

So I'm trying to compile the H.264 codec so that I can use it to enhance performance in NoMachine as per https://www.nomachine.com/AR10K00695

Instructions below deal with the following possible cases on server host:

Case 1: You don't have x264 library already compiled

Case 2: You have x264 library already compiled

and on client host:

Case 1: You have FFmpeg already installed

Case 2: You don't have FFmpeg installed

Case 3: You have FFmpeg libraries already compiled

The weird thing is that it states that you compile x264 on the server and ffmpeg on the client. Shouldn't you have either have x264 compiled on both the server and the client or ffmpeg on the server and the client?

Why use two different codecs for the server and the client?

like image 794
user3067233 Avatar asked Feb 02 '26 18:02

user3067233


1 Answers

We rewrote the article since it was not doing a good job of explaining the subtleties we wanted to present. Encoder and decoder in FFmpeg are different codecs, developed by different developers and with different licenses. FFmpeg provides a H.264 decoder in the default build, but not the encoder. Additionally, when FFmpeg is built with the H.264 encoder, the default build links the encoder statically, so that other applications can't use it. This means that in most cases the encoder must be built separately.

Anyway this is not important for the end-users :-) If you want to use H.264 on the NoMachine client just install FFmpeg from the repository of your Linux distribution or install a Windows or Mac build from one of the sites providing it. If you want to use H.264 on the server, install a FFmpeg package including libx264 as a shared library or build it yourself using the instructions you find on the website.

Note also that NoMachine on Windows and Mac uses the codecs provided by the OS, which have the additional benefit of often being HW accelerated, with the FFmpeg SW codecs used as fallback in the case no suitable encoder or decoder can be initialized.

The NoMachine Team

like image 191
NoMachiner Avatar answered Feb 05 '26 08:02

NoMachiner



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!