libx264 problem. Encoder or codec?

Camille Moulin camille.moulin at free.fr
Wed Jul 1 19:46:47 BST 2020


Hi Terry,

Thanks for the detailed description of the problem.
Could you please precise how you installed Kdenlive and on which
distribution?

Cheers,
Camille



On 01/07/2020 11:48, Terry Neve wrote:
> Hi
>
> Firstly thanks for a great piece of software and I hope you can help
> with a problem I have encountered.
>
> When selecting Render and choosing the format "MP4 - the dominating
> format (H264/AAC)" the render option is disabled with the error
> Unsupported video codec: libx264 (attached screenshot)
>
> Looking at the code in renderwidget.cpp it checks the codec defined in
> the project profile against a list of video codecs obtained from MLT and
> sure enough libx264 is not in that list.  I've been told that this is
> because "libx264 is not a codec, it's an encoder implementation of a
> codec".  I confess I'm not sure I understand the distinction but doing
> some tests:
>
> [terry at localhost ~]$ melt -query video_codecs | grep 264
>   - h264_nvenc
>   - h264_v4l2m2m
>   - h264_vaapi
>   - nvenc_h264
>   - h264
>   - h264_cuvid
>
> I believe that is the command equivalent of how renderwidget populates
> vcodecsList and libx264 is not there.  However I can run a command like:
>
> melt avformat:DarkStar.webm -consumer avformat:output.mp4 acodec=aac
> vcodec=libx264
>
> and it works just fine.
> Looking at how ffmpeg sees things seems to confirm what I was told.
>
> [terry at localhost ~]$ ffmpeg -codecs | grep 264
> ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
>   built with gcc 9.3.0 (PCLinuxOS 9.3.0-1pclos2020)
>   configuration: --prefix=/usr --enable-shared --enable-pic
> --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include
> --extra-cflags=-I/usr/include/nvenc --disable-stripping
> --enable-postproc --enable-gpl --enable-pthreads --enable-libtheora
> --enable-libvorbis --disable-encoder=vorbis --enable-libvpx
> --enable-runtime-cpudetect --enable-libdc1394 --enable-librtmp
> --enable-libspeex --enable-libfreetype --enable-libgsm --enable-libcelt
> --enable-libopus --enable-libopencv --enable-libopenjpeg
> --enable-libtwolame --enable-libxavs --enable-frei0r --enable-libmodplug
> --enable-libass --enable-gnutls --enable-libcdio --enable-libpulse
> --enable-libv4l2 --enable-avresample --enable-opencl --enable-libmp3lame
> --enable-libaom --enable-sndio --enable-libdav1d
> --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3
> --enable-libx264 --enable-libx265 --enable-libvo-amrwbenc
> --enable-libxvid --enable-decoder=atrac3 --enable-decoder=atrac3p
> --enable-libwebp --enable-libfdk-aac --enable-nonfree --enable-cuda
> --enable-cuvid --enable-nvenc --extra-cflags=-I/usr/local/cuda/include
> --extra-ldflags=-L/usr/local/cuda/lib64
>   libavutil      56. 51.100 / 56. 51.100
>   libavcodec     58. 91.100 / 58. 91.100
>   libavformat    58. 45.100 / 58. 45.100
>   libavdevice    58. 10.100 / 58. 10.100
>   libavfilter     7. 85.100 /  7. 85.100
>   libavresample   4.  0.  0 /  4.  0.  0
>   libswscale      5.  7.100 /  5.  7.100
>   libswresample   3.  7.100 /  3.  7.100
>   libpostproc    55.  7.100 / 55.  7.100
>  DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
> (decoders: h264 h264_v4l2m2m h264_cuvid ) (encoders: libx264 libx264rgb
> h264_nvenc h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )
>
> I was told instead to do:
>
> [terry at localhost ~]$ ffmpeg -encoders | grep 264
> ...
> V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4
> part 10 (codec h264)
>  V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4
> part 10 RGB (codec h264)
>  V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
>  V..... h264_v4l2m2m         V4L2 mem2mem H.264 encoder wrapper (codec h264)
>  V..... h264_vaapi           H.264/AVC (VAAPI) (codec h264)
>  V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
>  V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
>
> I don't know what the equivalent MLT query would be for that.
> I must confess I don't really know whether the problem lies in MLT or
> kdenlive.  I'm hoping maybe someone here can shed some light on this for me.
>
> Software versions in use:
> kdenlive-20.04.2
> mlt-6.20.0
> ffmpeg-4.3
> x264-1.157.20190309
>
> Thanks in advance,
> Terry




More information about the kdenlive mailing list