[multimedia/kdenlive] /: fix(transcoding): replace deprecated -vsync with -fps_mode for modern FFmpeg

Jean-Baptiste Mardelle <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit d388527a1756e6a53eefb4a1260e25b53079f751 by Jean-Baptiste Mardelle, on behalf of Ketsebaot Gizachew.
Committed on 18/08/2026 at 09:48.
Pushed by mardelle into branch 'master'.

fix(transcoding): replace deprecated -vsync with -fps_mode for modern FFmpeg

M  +8    -8    data/encodingprofiles.rc
M  +2    -2    data/kdenlivetranscodingrc
M  +1    -1    src/jobs/scenesplittask.cpp
M  +1    -1    src/kdenlivesettings.kcfg

https://invent.kde.org/multimedia/kdenlive/-/commit/d388527a1756e6a53eefb4a1260e25b53079f751

diff --git a/data/encodingprofiles.rc b/data/encodingprofiles.rc
index 35d531c4f4..0a56ff5608 100644
--- a/data/encodingprofiles.rc
+++ b/data/encodingprofiles.rc
@@ -6,18 +6,18 @@ MPEG=qscale=4 ab=192k vcodec=mpeg2video acodec=mp2 threads=%threads;mpg
 
 [proxy]
 # proxy settings should be FFmpeg type parameters, like: -vcodec libx264
-x264=-vf scale=%width:-2 -vsync 1 -c:v libx264 -g 1 -bf 0 -vb 0 -crf 20 -preset veryfast -c:a aac -ab 128k;mov
-x264-vaapi=-init_hw_device vaapi=vaapi0: -filter_hw_device vaapi0 -i -vf scale=%width:-2,format=nv12,hwupload -vsync 1 -c:v h264_vaapi -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mov
-x264-amf=-f mp4 -vsync 1 -c:v h264_amf -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mp4
-x264-qsv=-f mp4 -vsync 1 -c:v h264_qsv -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mp4
-x264-videotoolbox=-f mp4 -vsync 1 -c:v h264_videotoolbox -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mp4
-x264-vaapi-scale=-hwaccel vaapi -hwaccel_output_format vaapi -i -vf scale_vaapi=w=%width:h=-2:format=nv12,hwupload -vsync 1 -c:v h264_vaapi -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mov
-x264-nvenc=-vsync 1 -c:v %nvcodec -resize %frameSize -i -c:v h264_nvenc -g 2 -bf 0 -c:a aac -ab 128k;mov
+x264=-vf scale=%width:-2 -fps_mode cfr -c:v libx264 -g 1 -bf 0 -vb 0 -crf 20 -preset veryfast -c:a aac -ab 128k;mov
+x264-vaapi=-init_hw_device vaapi=vaapi0: -filter_hw_device vaapi0 -i -vf scale=%width:-2,format=nv12,hwupload -fps_mode cfr -c:v h264_vaapi -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mov
+x264-amf=-f mp4 -fps_mode cfr -c:v h264_amf -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mp4
+x264-qsv=-f mp4 -fps_mode cfr -c:v h264_qsv -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mp4
+x264-videotoolbox=-f mp4 -fps_mode cfr -c:v h264_videotoolbox -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mp4
+x264-vaapi-scale=-hwaccel vaapi -hwaccel_output_format vaapi -i -vf scale_vaapi=w=%width:h=-2:format=nv12,hwupload -fps_mode cfr -c:v h264_vaapi -g 1 -bf 0 -qp 26 -c:a aac -ab 128k;mov
+x264-nvenc=-fps_mode cfr -c:v %nvcodec -resize %frameSize -i -c:v h264_nvenc -g 2 -bf 0 -c:a aac -ab 128k;mov
 MPEG2=-vf scale=%width:-2 -g 1 -bf 0 -vb 0 -qscale 6 -ab 128k -c:v mpeg2video -c:a ac3;mpg
 MJPEG=-vf yadif,scale=%width:-2 -qscale 3 -c:v mjpeg -c:a pcm_s16le;mkv
 MJPEG-vaapi=-init_hw_device vaapi=vaapi0:,connection_type=x11 -filter_hw_device vaapi0 -vf format=nv12,hwupload -c:v mjpeg_vaapi -codec:a copy;mkv
 ProRes=-vf scale=%width:-2 -c:v prores_ks -vb 0 -g 1 -bf 0 -vprofile 0 -vendor ap10 -qscale 11;mov
-NVENC H264=-vsync 1 -c:v h264_nvenc -vb 30000k -rc cbr -c:a aac -ab 128k;mp4
+NVENC H264=-fps_mode cfr -c:v h264_nvenc -vb 30000k -rc cbr -c:a aac -ab 128k;mp4
 NVENC H265=-c:v hevc_nvenc -vb 30000k -c:a aac -ab 128k;mp4
 
 [proxy-alpha]
diff --git a/data/kdenlivetranscodingrc b/data/kdenlivetranscodingrc
index a685a3ca7b..6a6e912957 100644
--- a/data/kdenlivetranscodingrc
+++ b/data/kdenlivetranscodingrc
@@ -38,9 +38,9 @@ DVD NTSC 16:9=-f dvd -r 23.976 -vf scale=720:480 -aspect 16:9 -minrate 0 -maxrat
 AAC (Audio only)=-vn -codec:a aac -ab 256k %1.m4a;audio
 Lossy x264 I frame only=-f mp4 -codec:v libx264 -g 1 -bf 0 -crf 15 -preset medium -codec:a aac -ab 256k %1.mp4;av
 Lossy x264 I frame only (VAAPI GPU)=-init_hw_device vaapi=vaapi0: -filter_hw_device vaapi0 -i -vf format=nv12,hwupload -f mp4 -c:v h264_vaapi -g 1 -bf 0 -crf 15 -preset medium -codec:a aac -ab 256k %1.mp4;av
-Lossy x264 I frame only (NVidia GPU)=-f mp4 -vsync 0 -codec:v h264_nvenc -vb 0 -rc cbr -g 2 -bf 0 -codec:a aac -ab 256k %1.mp4;av
+Lossy x264 I frame only (NVidia GPU)=-f mp4 -fps_mode passthrough -codec:v h264_nvenc -vb 0 -rc cbr -g 2 -bf 0 -codec:a aac -ab 256k %1.mp4;av
 Lossy x264 I frame only (Video only)=-f mp4 -codec:v libx264 -g 1 -bf 0 -crf 15 -preset medium -an %1.mp4;video
 Lossy x264 I frame only (VAAPI GPU Video only)=-init_hw_device vaapi=vaapi0: -filter_hw_device vaapi0 -i -vf format=nv12,hwupload -f mp4 -c:v h264_vaapi -g 1 -bf 0 -crf 15 -preset medium -an %1.mp4;video
-Lossy x264 I frame only (NVidia GPU Video only)=-f mp4 -vsync 0 -codec:v h264_nvenc -vb 0 -rc cbr -g 2 -bf 0 -an %1.mp4;video
+Lossy x264 I frame only (NVidia GPU Video only)=-f mp4 -fps_mode passthrough -codec:v h264_nvenc -vb 0 -rc cbr -g 2 -bf 0 -an %1.mp4;video
 Intermediate DNxHR HQ (Large files)=-f mov -codec:a pcm_f32le -codec:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p %1.mov;av
 Lossless (Huge files)=-f matroska -codec:a pcm_f32le -codec:v utvideo -pix_fmt yuv422p %1.mkv;av
diff --git a/src/jobs/scenesplittask.cpp b/src/jobs/scenesplittask.cpp
index a4e9de911c..1fb74a4529 100644
--- a/src/jobs/scenesplittask.cpp
+++ b/src/jobs/scenesplittask.cpp
@@ -138,7 +138,7 @@ void SceneSplitTask::run()
                               source,
                               QStringLiteral("-filter:v"),
                               QStringLiteral("select='gt(scene,%1)',showinfo").arg(m_threshold),
-                              QStringLiteral("-vsync"),
+                              QStringLiteral("-fps_mode"),
                               QStringLiteral("vfr"),
                               QStringLiteral("-f"),
                               QStringLiteral("null"),
diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg
index 618f9b08c5..9c0d61ffea 100644
--- a/src/kdenlivesettings.kcfg
+++ b/src/kdenlivesettings.kcfg
@@ -688,7 +688,7 @@
 
     <entry name="safeFFmpegParams" type="StringList">
       <label>Safe known parameters for ffmpeg.</label>
-      <default>f,vf,af,c:v,c:a,codec:v,codec:a,g,qscale,filter_hw_device,i,vsync,ab,qp,bf,crf,preset,vendor,vb,vprofile,init_hw_device,hwaccel,hwaccel_output_format,resize,rc,pix_fmt,vcodec,acodec</default>
+      <default>f,vf,af,c:v,c:a,codec:v,codec:a,g,qscale,filter_hw_device,i,vsync,fps_mode,ab,qp,bf,crf,preset,vendor,vb,vprofile,init_hw_device,hwaccel,hwaccel_output_format,resize,rc,pix_fmt,vcodec,acodec</default>
     </entry>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.