I'm trying to convert 30 fps videos to 24 fps. I've been playing with a lot of 
methods for removing what I think may be known as lag spikes, spurious 
duplicate frames which fall outside the usual pattern of 4 unique frames and 1 
duplicate of the 4th. I tried the following command and find that it eliminates 
the spurious dups, but it also eliminates many dups in succession, virtually 
cutting out all passages where there is a black screen or any group of 
consecutive frames having precisely the same content. I've already tried many 
variations of this command line. Is there a way to alter the command so that no 
more than 1 consecutive dup will be eliminated?

I have one more related question.

If I omit "mpdecimate,setpts=N/24/TB" from the filter chain on a video of a 
duration greater than a few minutes, the results are very good except that the 
audio sync deteriorates gradually, apparently because the audio is being 
encoded with a shorter duration than video at the specified frame rate. Is 
there a way I can alter the command so that the audio will remain synced? (I've 
also tried copying the audio with no encoding, which has similar results.)

Thanks.

Here's my command line and output:

ffmpeg -i 30_fps.ts -map 0:0 -vf 
decimate=cycle=5,mpdecimate,setpts=N/24/TB,crop=1920:800:0:140 -c:v 
h264_videotoolbox -b:v 3600k -color_primaries:v bt709 -color_trc:v bt709 
-colorspace:v bt709 -metadata:s:v "title=" -disposition:v default -map 0:1 
-c:a:0 ac3 -b:a 640k -metadata:s:a:0 "title=" -disposition:a:0 default 
-metadata:g "title=" -r 24 -movflags disable_chpl 30_fps_to_24.mp4

ffmpeg -i 30_fps.ts -map 0:0 -vf 
decimate=cycle=5,mpdecimate,setpts=N/24/TB,crop=1920:800:0:140 -c:v 
h264_videotoolbox -b:v 3600k -color_primaries:v bt709 -color_trc:v bt709 
-colorspace:v bt709 -metadata:s:v "title=" -disposition:v default -map 0:1 
-c:a:0 ac3 -b:a 640k -metadata:s:a:0 "title=" -disposition:a:0 default 
-metadata:g "title=" -r 24 -movflags disable_chpl 30_fps_to_24.mp4
ffmpeg version 7.0.1 Copyright (c) 2000-2024 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.3.9.4)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.0.1 --enable-shared 
--enable-pthreads --enable-version3 --cc=clang --host-cflags= 
--host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl 
--enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d 
--enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus 
--enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy 
--enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract 
--enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis 
--enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 
--enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig 
--enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb 
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex 
--enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack 
--disable-indev=jack --enable-videotoolbox --enable-audiot
 oolbox --enable-neon
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Input #0, mpegts, from '30_fps.ts':
  Duration: 00:01:00.15, start: 1.400000, bitrate: 15068 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
  Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, 
bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn
  Stream #0:1[0x101]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), 
fltp, 640 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_videotoolbox))
  Stream #0:1 -> #0:1 (ac3 (native) -> ac3 (native))
Press [q] to stop, [?] for help
Output #0, mp4, to '30_fps_to_24.mp4':
  Metadata:
    encoder         : Lavf61.1.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, 
progressive), 1920x800 [SAR 1:1 DAR 12:5], q=2-31, 3600 kb/s, 24 fps, 12288 tbn 
(default)
      Metadata:
        encoder         : Lavc61.3.100 h264_videotoolbox
  Stream #0:1: Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 
kb/s (default)
      Metadata:
        encoder         : Lavc61.3.100 ac3
[out#0/mp4 @ 0x6000006bc000] video:19462KiB audio:4688KiB subtitle:0KiB other 
streams:0KiB global headers:0KiB muxing overhead: 0.069524%
frame=  808 fps=107 q=-0.0 Lsize=   24167KiB time=00:00:33.62 
bitrate=5887.7kbits/s speed=4.46x   

Thanks again!

L. Lee
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to