ffplay -vcodec lcevc_<codec> -i stream.ts
ffmpeg -vcodec lcevc_<codec> -i stream.ts -vcodec rawvideo decoded_video.yuv
dbus libapparmor1 libasound2 libasound2-data libasyncns0 libbsd0 libc6 libdbus-1-3 libexpat1 libflac8 libfontconfig1 libfontenc1 libfreetype6 libgl1 libglvnd0 libglx0 libice6 libogg0 libpng16-16 libpulse0 libsdl2-2.0-0 libsm6 libsndfile1 libsndio6.1 libuuid1 libvorbis0a libvorbisenc2 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwrap0 libx11-6 libx11-xcb1 libxau6 libxaw7 libxcb-dri3-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon0 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1 libxres1 libxss1 libxt6 libxtst6 libxv1 libxvmc1 libxxf86vm1 xkb-data zlib1g
sudo apt-get install -y
followed by the above dependencies list will install all of them at once.sudo LD_LIBRARY_PATH=.
-c:v lcevc_<codec> -base_encoder <codec implementation> -eil_params "<enhancement parameters string>;<base parameters string>"
ffmpeg -help encoder=lcevc_h264
ffmpeg -help encoder=lcevc_hevc
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -eil_params "<parameter1>=<value1>;<parameter2>=<value2>;…" output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -b:v 2000k output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -b:v 2000k -eil_params output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -b:v 2000k -eil_params "rc_pcrf_base_rc_mode=crf" output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 [-b:v 0] -eil_params "rc_pcrf=30;rc_pcrf_min_bitrate=0;rc_pcrf_base_rc_mode=crf" output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -eil_params "rc_pcrf_base_min_qp=14;" output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -eil_params "qp-max=32" output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -r 30 -g 60 -b:v 1000k -eil_params “preset=medium” lcevc_x264_500k_vq.mp4
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -r 30 -g 60 ‑b:v 1000k -eil_params "lcevc_tune=vmaf;preset=medium" lcevc_x264_500k_vmaf.mp4
ffmpeg.exe -y -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -r 30 -g 60 ‑b:v 1000k -eil_params "lcevc_tune=psnr;preset=medium" lcevc_x264_500k_psnr.mp4
ffmpeg.exe -y -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -r 30 -g 60 ‑eil_params "rc_pcrf=27;lcevc_tune=vmaf;preset=medium" lcevc_x264_pcrf27_vmaf.mp4
lcevc_preset
” is supported. Similar to the -preset
or -cpu-used
configuration of other codecs (i.e. x264, x265, VPx, AV1), lcevc_preset
provides six discrete combinations of encoding parameters to optimise speed and video quality trade-off depending on the use case. The options are from 0 to 5, where 0 is the slowest (i.e., consistently with VPx/AV1) while achieving the maximum quality, and 5 is the fastest with 1 as default.lcevc_preset
” should be manually set by the user with similar criteria used for the choice of the base encoder preset
. Here is our recommendation of lcevc_preset
according to the preset
of the x264/x265 base encoder. The ‘relative speed index’ provides a ballpark indication of the relative encode time of the various presets vs. the default one; it’s based on LCEVC x264 (medium), an index of ‘110’ means that the given preset takes 10% more encode time vs. the default, while ‘60’ means 40% less encode time. Note: the ratio is approximated and based on a small set of 1080p-encoded sample clips, so results may vary according to testing conditions.ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -eil_params "scaling_mode_level0=2D" output.ts
ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -eil_params "scaling_mode_level0=0D;encoding_mode=native" output.ts
ffmpeg.exe -vcodec lcevc_h264 -disable_dithering 1 -i stream.mp4 -vcodec rawvideo output.yuv
m_ad_mode
) settings deviate from basic linear kernels and provide some degree of control for one of the elements of this “chain reaction” of interlocked non-linear image processing tools. m_ad_mode=disabled
or use the corresponding lcevc_tune
(which, among other things, will set m_ad_mode to "disabled). On the other side, both formal subjective MOS scores and VMAF tend to agree that some degree of M adaptive downsampling improves visual quality.ffmpeg.exe -i input.mp4 -c:v lcevc_h264 -base_encoder x264 -eil_params "bframes=0;rc_pcrf_ipp_mode=1" output.ts
ffmpeg.exe -y -framerate 59.97 -f rawvideo -pix_fmt yuv420p -s 1920x1080 -i input-p60-1920x1080.yuv -c:v lcevc_h264 -base_encoder x264 -g 120 -b:v 3000k -eil_params "threads=8;dc_dithering_type=uniform;preset=medium;rc_pcrf_window_type=rolling" output-p60-1920x1080_3000kbps.ts
ffmpeg.exe -y -framerate 59.97 -f rawvideo -pix_fmt yuv420p -s 1920x1080 -i input-p60-1920x1080.yuv -c:v lcevc_h264 -base_encoder x264 -g 120 -b:v 3000k -eil_params "threads=8;rc_pcrf_base_rc_mode=crf;dc_dithering_strength=4;preset=medium;rc_pcrf_window_type=rolling" output-CRFbase-p60-1920x1080_3000kbps.ts
ffmpeg.exe -y -framerate 59.97 -f rawvideo -pix_fmt yuv420p -s 1920x1080 -i input-p60-1920x1080.yuv -c:v lcevc_h264 -base_encoder x264 -g 120 -b:v 0 -eil_params "threads=8;rc_pcrf=27;dc_dithering_type=uniform;preset=medium" output-p60-1920x1080_pcrf27.ts
ffmpeg.exe -y -framerate 25 -f rawvideo -pix_fmt yuv420p -s 640x360 -i input-p25-640x360.yuv -c:v lcevc_h264 -base_encoder x264 -g 50 -b:v 170k -eil_params "dc_dithering_type=uniform;dc_dithering_strength=4;preset=medium;rc_pcrf_window_type=rolling" output-p25-640x360_170kbps.ts
ffmpeg.exe -y -framerate 29.97 -f rawvideo -pix_fmt yuv420p -s 960x540 -i input-p30-960x540.yuv -c:v lcevc_h264 -base_encoder x264 -g 60 -b:v 450k -eil_params "threads=8;dc_dithering_type=uniform;dc_dithering_strength=4;preset=medium;rc_pcrf_window_type=rolling" output-p30-960x540_450kbps.ts
ffmpeg.exe -y -framerate 29.97 -f rawvideo -pix_fmt yuv420p -s 1280x720 -i input-p30-1280x720.yuv -c:v lcevc_h264 -base_encoder x264 -g 60 -b:v 0 -eil_params "threads=8;rc_pcrf=30;dc_dithering_type=uniform;dc_dithering_strength=4;preset=medium;rc_pcrf_window_type=rolling" output-p30-1280x720_pcrf30.ts
-c:v lcevc_hevc -base_encoder x265 -eil_params "<enhancement parameter string>;”
ffmpeg.exe -y -i source.y4m -c:v lcevc_hevc -base_encoder x265 -g 60 -b:v 1000k -eil_params "preset=medium;min-keyint=60;rc_pcrf=36;scenecut=0;aq-mode=3;aq-strength=1.2;ctu=32" output.ts
-c:v lcevc_av1 -base_encoder aom -eil_params "<enhancement parameter string>;”
ffmpeg -y -i input.yuv -c:v lcevc_av1 -base_encoder aom -g 60 -b:v 1000k -eil_params "threads=4;cpu-used=4;lcevc_tune=vq;pass_count=2;pass=1" -f null /dev/null && \
ffmpeg -y -i input.yuv -c:v lcevc_av1 -base_encoder aom -g 60 -b:v 1000k -eil_params "threads=4;cpu-used=4;lcevc_tune=vq;pass_count=2;pass=2" output.webm
NUL
instead of /dev/null
and ^
(in command prompt) or `
(in PowerShell) instead of \
-c:v lcevc_vp9 -base_encoder vpx_vp9 -eil_params "<enhancement parameter string>;”
ffmpeg -y -i source.yuv -c:v lcevc_vp9 -base_encoder vpx_vp9 -s 1920x1080 -r 30 -b:v 3000k -g 120 -eil_params "quality=good;cpu-used=0;" output.webm
-c:v lcevc_h264 -base_encoder qsv_h264 -eil_params "<enhancement parameter string>;”
-c:v lcevc_hevc -base_encoder qsv_hevc -eil_params "<enhancement parameter string>;”
ffmpeg -y -vcodec rawvideo -pix_fmt yuv420p -s 1920x1080 -r 30 -i source.yuv -c:v lcevc_hevc -s 1920x1080 -r 30 -b:v 5000k -g 60 -base_encoder qsv_hevc output.ts
-c:v lcevc_h264 -base_encoder nvenc_h264 -eil_params "<enhancement parameter string>;”
-c:v lcevc_hevc -base_encoder nvenc_hevc -eil_params "<enhancement parameter string>;”
ffmpeg.exe -vcodec lcevc_h264 -i stream.ts -vcodec rawvideo output.yuv
ffmpeg.exe -vcodec lcevc_h264 -i stream.mp4 -vcodec rawvideo output.yuv
ffmpeg.exe -vcodec lcevc_hevc -i stream.ts -vcodec rawvideo output.yuv
ffmpeg.exe -vcodec lcevc_hevc -i stream.mp4 -vcodec rawvideo output.yuv
ffplay.exe -vcodec lcevc_h264 -i stream.mp4
ffplay.exe -vcodec lcevc_hevc -i stream.mp4
ffmpeg.exe -vcodec lcevc_h264 -disable_dithering 1 -i stream.mp4 -vcodec rawvideo output.yuv
ffmpeg.exe -vcodec lcevc_h264 –i input_stream.ts -vcodec rawvideo -s 1920x1080 -i reference_yuv.yuv -filter_complex " [0:v]scale=1920x1080:flags=bicubic[main];[main][1:v]libvmaf" -f null
~/vnova/ffmpeg/ffmpeg \
-framerate $FPS \
-vcodec rawvideo \
-pix_fmt yuv420p \
-s $RESO \
-i $INPUT \
-vcodec lcevc_h264 \
-base_encoder x264 \
-b:v $BITRATE \
-eil_params "lcevc_tune=vmaf;dc_dithering_type=none;preset=medium;rc_pcrf_window_type=rolling" \
-f mp4 \
outputs/"$FILE"_vnova.mp4
ffmpeg \
-s $RESO \
-framerate $FPS \
-vcodec rawvideo \
-i $INPUT \
-vcodec libx264 \
-b:v $BITRATE \
-preset medium \
-g $FPS \
-f mp4 \
outputs/"$FILE"_libx.mp4
~/vnova/ffmpeg/ffmpeg -y \
-vcodec lcevc_hevc \
-disable_dithering 1 \
-i outputs/"$FILE"_vnova.mp4 \
-vcodec rawvideo \
-s $RESO \
-framerate $FPS \
-pix_fmt yuv420p \
-i $INPUT \
-filter_complex "[0:v]scale=1920x1080:flags=bicubic[main];[main][1:v]libvmaf=model_path=/path/to/vmaf_v0.6.1.pk1" \
-f null -
~/vnova/ffmpeg/ffmpeg -y \
-i outputs/"$FILE"_libx.mp4 \
-s $RESO \
-framerate $FPS \
-pix_fmt yuv420p \
-i $INPUT \
-filter_complex "[0:v]scale=1920x1080:flags=bicubic[main];[main][1:v]libvmaf" \
-f null -