compressing video with ffmpeg while maintaining high frame rate

1

Update: I watched the output video on a different machine and it was fine. The issue must've been with the program I was using to watch the video. Nevermind.

I'm trying to compress videos taken with my Canon camera for storage. Unfortunately, the output video has a decreased frame rate which makes the video not smooth. I've tried using -r 25 to increase the frame rate, but it doesn't make a difference. ffmpeg seems to ignore the option. Is there a way to force ffmpeg to use a higher quality variable frame rate or a constant frame rate? Do I need to use a different video codec? Do I need to use something other than ffmpeg? After much research, I haven't been able to make any progress. I can add a link to the input and output video if needed. Here's an example run:

H:\test>ffmpeg -i input.mov -c:v libx264 -crf 23 -r 25 -force_fps -c:a aac -stri
ct experimental out.mp4
ffmpeg version N-59532-gadc09a3 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jan  3 2014 22:01:54 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.102 / 55. 22.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537331968
    compatible_brands: qt  CAEP
    creation_time   : 2013-09-05 22:18:02
  Duration: 00:00:17.04, start: 0.000000, bitrate: 21175 kb/s
    Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yu
vj420p(pc, smpte170m), 1280x720, 19592 kb/s, 25 fps, 25 tbr, 25k tbn, 50k tbc (d
efault)
    Metadata:
      creation_time   : 2013-09-05 22:18:02
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s1
6, 1536 kb/s (default)
    Metadata:
      creation_time   : 2013-09-05 22:18:02
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0319fc20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
[libx264 @ 0319fc20] profile High, level 3.1
[libx264 @ 0319fc20] 264 - core 140 r2377 1ca7bb9 - H.264/MPEG-4 AVC codec - Cop
yleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
ma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 i
nterlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenec
ut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=
0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : qt
    minor_version   : 537331968
    compatible_brands: qt  CAEP
    encoder         : Lavf55.22.102
    Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p,
1280x720, q=-1--1, 12800 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2013-09-05 22:18:02
    Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, flt
p, 128 kb/s (default)
    Metadata:
      creation_time   : 2013-09-05 22:18:02
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (pcm_s16le -> aac)
Press [q] to stop, [?] for help
frame=   46 fps=0.0 q=0.0 size=       0kB time=00:00:01.89 bitrate=   0.2kbits/s
frame=   53 fps= 41 q=28.0 size=      77kB time=00:00:02.34 bitrate= 268.0kbits/
frame=   58 fps= 33 q=28.0 size=     152kB time=00:00:02.34 bitrate= 531.2kbits/
frame=   65 fps= 27 q=28.0 size=     246kB time=00:00:02.83 bitrate= 711.6kbits/
frame=   70 fps= 24 q=28.0 size=     303kB time=00:00:02.85 bitrate= 869.2kbits/
frame=   76 fps= 22 q=28.0 size=     370kB time=00:00:03.30 bitrate= 916.8kbits/
frame=   82 fps= 20 q=28.0 size=     437kB time=00:00:03.30 bitrate=1082.6kbits/
frame=   87 fps= 19 q=26.0 size=     505kB time=00:00:03.79 bitrate=1089.7kbits/
frame=   94 fps= 19 q=28.0 size=     630kB time=00:00:03.79 bitrate=1358.8kbits/
frame=   99 fps= 18 q=28.0 size=     708kB time=00:00:04.26 bitrate=1358.9kbits/
frame=  104 fps= 17 q=28.0 size=     782kB time=00:00:04.26 bitrate=1502.3kbits/
frame=  111 fps= 16 q=28.0 size=     913kB time=00:00:04.75 bitrate=1572.5kbits/
frame=  117 fps= 16 q=28.0 size=    1004kB time=00:00:04.75 bitrate=1729.6kbits/
frame=  124 fps= 15 q=28.0 size=    1104kB time=00:00:05.22 bitrate=1729.9kbits/
frame=  130 fps= 15 q=28.0 size=    1217kB time=00:00:05.22 bitrate=1907.4kbits/
frame=  135 fps= 14 q=28.0 size=    1372kB time=00:00:05.71 bitrate=1966.4kbits/
frame=  139 fps= 14 q=28.0 size=    1538kB time=00:00:05.71 bitrate=2203.6kbits/
frame=  142 fps= 13 q=28.0 size=    1644kB time=00:00:05.73 bitrate=2346.4kbits/
frame=  148 fps= 13 q=28.0 size=    1838kB time=00:00:06.18 bitrate=2433.3kbits/
frame=  153 fps= 13 q=28.0 size=    2016kB time=00:00:06.18 bitrate=2669.4kbits/
frame=  157 fps= 13 q=28.0 size=    2170kB time=00:00:06.67 bitrate=2662.2kbits/
frame=  162 fps= 12 q=28.0 size=    2398kB time=00:00:06.67 bitrate=2942.2kbits/
frame=  166 fps= 12 q=28.0 size=    2556kB time=00:00:06.67 bitrate=3135.8kbits/
frame=  171 fps= 12 q=28.0 size=    2745kB time=00:00:07.14 bitrate=3146.4kbits/
frame=  177 fps= 12 q=28.0 size=    2987kB time=00:00:07.14 bitrate=3424.4kbits/
frame=  182 fps= 12 q=28.0 size=    3223kB time=00:00:07.63 bitrate=3457.1kbits/
frame=  188 fps= 12 q=28.0 size=    3481kB time=00:00:07.63 bitrate=3734.2kbits/
frame=  193 fps= 12 q=28.0 size=    3688kB time=00:00:08.10 bitrate=3726.3kbits/
frame=  198 fps= 11 q=28.0 size=    3894kB time=00:00:08.10 bitrate=3934.8kbits/
frame=  202 fps= 11 q=28.0 size=    4084kB time=00:00:08.10 bitrate=4126.8kbits/
frame=  208 fps= 11 q=28.0 size=    4388kB time=00:00:08.59 bitrate=4181.1kbits/
frame=  213 fps= 11 q=28.0 size=    4592kB time=00:00:08.59 bitrate=4375.6kbits/
frame=  218 fps= 11 q=28.0 size=    4805kB time=00:00:09.06 bitrate=4341.8kbits/
frame=  222 fps= 11 q=28.0 size=    4976kB time=00:00:09.06 bitrate=4495.5kbits/
frame=  226 fps= 11 q=28.0 size=    5139kB time=00:00:09.17 bitrate=4589.1kbits/
frame=  231 fps= 11 q=28.0 size=    5388kB time=00:00:09.55 bitrate=4618.3kbits/
frame=  236 fps= 11 q=28.0 size=    5597kB time=00:00:09.55 bitrate=4797.0kbits/
frame=  241 fps= 11 q=28.0 size=    5820kB time=00:00:10.02 bitrate=4754.9kbits/
frame=  244 fps= 10 q=28.0 size=    5929kB time=00:00:10.02 bitrate=4844.1kbits/
frame=  247 fps= 10 q=25.0 size=    6074kB time=00:00:10.02 bitrate=4962.3kbits/
frame=  252 fps= 10 q=28.0 size=    6366kB time=00:00:10.51 bitrate=4958.3kbits/
frame=  257 fps= 10 q=28.0 size=    6678kB time=00:00:10.51 bitrate=5201.1kbits/
frame=  260 fps= 10 q=28.0 size=    6888kB time=00:00:10.51 bitrate=5365.1kbits/
frame=  265 fps= 10 q=28.0 size=    7162kB time=00:00:10.98 bitrate=5340.1kbits/
frame=  269 fps=9.9 q=28.0 size=    7360kB time=00:00:10.98 bitrate=5487.6kbits/
frame=  273 fps=9.9 q=28.0 size=    7577kB time=00:00:10.98 bitrate=5650.0kbits/
frame=  276 fps=9.8 q=28.0 size=    7793kB time=00:00:11.47 bitrate=5562.6kbits/
frame=  280 fps=9.7 q=28.0 size=    7997kB time=00:00:11.47 bitrate=5708.1kbits/
frame=  284 fps=9.6 q=28.0 size=    8242kB time=00:00:11.47 bitrate=5882.8kbits/
frame=  289 fps=9.5 q=28.0 size=    8546kB time=00:00:11.94 bitrate=5860.2kbits/
frame=  293 fps=9.5 q=28.0 size=    8783kB time=00:00:11.94 bitrate=6023.0kbits/
frame=  298 fps=9.4 q=28.0 size=    9060kB time=00:00:11.94 bitrate=6212.6kbits/
frame=  302 fps=9.4 q=28.0 size=    9312kB time=00:00:12.43 bitrate=6133.1kbits/
frame=  306 fps=9.3 q=28.0 size=    9535kB time=00:00:12.43 bitrate=6280.6kbits/
frame=  309 fps=9.3 q=28.0 size=    9701kB time=00:00:12.43 bitrate=6389.6kbits/
frame=  313 fps=9.2 q=28.0 size=    9923kB time=00:00:12.90 bitrate=6298.4kbits/
frame=  316 fps=9.2 q=28.0 size=   10074kB time=00:00:12.90 bitrate=6394.2kbits/
frame=  321 fps=9.1 q=28.0 size=   10300kB time=00:00:12.90 bitrate=6537.8kbits/
frame=  326 fps=9.1 q=28.0 size=   10542kB time=00:00:13.39 bitrate=6445.9kbits/
frame=  332 fps=9.1 q=28.0 size=   10853kB time=00:00:13.39 bitrate=6636.1kbits/
frame=  337 fps=9.0 q=28.0 size=   11126kB time=00:00:13.86 bitrate=6573.2kbits/
frame=  342 fps=9.0 q=28.0 size=   11391kB time=00:00:13.86 bitrate=6729.7kbits/
frame=  346 fps=9.0 q=28.0 size=   11588kB time=00:00:14.16 bitrate=6701.2kbits/
frame=  351 fps=9.0 q=28.0 size=   11843kB time=00:00:14.35 bitrate=6757.5kbits/
frame=  355 fps=9.0 q=28.0 size=   12061kB time=00:00:14.35 bitrate=6881.6kbits/
frame=  361 fps=9.0 q=28.0 size=   12349kB time=00:00:14.82 bitrate=6822.8kbits/
frame=  367 fps=9.0 q=28.0 size=   12620kB time=00:00:14.82 bitrate=6972.6kbits/
frame=  372 fps=9.0 q=28.0 size=   12868kB time=00:00:15.31 bitrate=6881.9kbits/
frame=  377 fps=8.9 q=28.0 size=   13054kB time=00:00:15.31 bitrate=6981.7kbits/
frame=  382 fps=8.9 q=28.0 size=   13284kB time=00:00:15.31 bitrate=7104.7kbits/
frame=  388 fps=9.0 q=28.0 size=   13538kB time=00:00:15.78 bitrate=7025.1kbits/
frame=  393 fps=9.0 q=28.0 size=   13740kB time=00:00:15.78 bitrate=7129.9kbits/
frame=  397 fps=8.9 q=28.0 size=   13918kB time=00:00:16.27 bitrate=7004.5kbits/
frame=  403 fps=9.0 q=28.0 size=   14150kB time=00:00:16.27 bitrate=7121.2kbits/
frame=  408 fps=9.0 q=28.0 size=   14338kB time=00:00:16.74 bitrate=7013.8kbits/
frame=  412 fps=9.0 q=28.0 size=   14494kB time=00:00:16.74 bitrate=7090.2kbits/
frame=  417 fps=9.0 q=28.0 size=   14663kB time=00:00:16.74 bitrate=7172.7kbits/
frame=  423 fps=9.0 q=28.0 size=   14918kB time=00:00:16.98 bitrate=7196.5kbits/
frame=  426 fps=8.1 q=-1.0 Lsize=   17139kB time=00:00:17.04 bitrate=8237.1kbits
/s
video:16860kB audio:267kB subtitle:0 global headers:0kB muxing overhead 0.074326
%
[libx264 @ 0319fc20] frame I:7     Avg QP:22.59  size: 32989
[libx264 @ 0319fc20] frame P:297   Avg QP:26.67  size: 47713
[libx264 @ 0319fc20] frame B:122   Avg QP:29.30  size: 23459
[libx264 @ 0319fc20] consecutive B-frames: 43.0% 56.3%  0.7%  0.0%
[libx264 @ 0319fc20] mb I  I16..4: 34.1% 58.2%  7.7%
[libx264 @ 0319fc20] mb P  I16..4:  5.9% 14.0%  6.5%  P16..4: 43.0% 18.8%  9.0%
 0.0%  0.0%    skip: 2.8%
[libx264 @ 0319fc20] mb B  I16..4:  0.6%  1.2%  0.5%  B16..8: 50.5% 11.3%  3.1%
 direct:14.7%  skip:18.1%  L0:38.2% L1:37.5% BI:24.3%
[libx264 @ 0319fc20] 8x8 transform intra:53.3% inter:48.3%
[libx264 @ 0319fc20] coded y,uvDC,uvAC intra: 67.6% 70.7% 24.2% inter: 56.1% 47.
0% 1.4%
[libx264 @ 0319fc20] i16 v,h,dc,p: 16% 24% 21% 39%
[libx264 @ 0319fc20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 22% 24%  5%  5%  5%  7%
 6%  8%
[libx264 @ 0319fc20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 21% 19%  6%  7%  6%  7%
 7%  7%
[libx264 @ 0319fc20] i8c dc,h,v,p: 54% 25% 16%  5%
[libx264 @ 0319fc20] Weighted P-Frames: Y:20.5% UV:14.8%
[libx264 @ 0319fc20] ref P L0: 63.8% 21.7% 10.3%  4.0%  0.2%
[libx264 @ 0319fc20] ref B L0: 94.9%  5.1%  0.0%
[libx264 @ 0319fc20] ref B L1: 100.0%  0.0%
[libx264 @ 0319fc20] kb/s:8105.05

Jacob O'Bryant

Posted 2014-01-04T10:59:28.977

Reputation: 11

A sample (both input and output) would be good to have. I don't see anything wrong from the logs. – slhck – 2014-01-04T15:24:21.950

Do you really need to re-encode? Is storage space worth more than the time and energy it takes to re-encode and the loss of quality it introduces? If you want to encode faster then remove -r 25 -force_fps and use a faster encoding preset such as -preset ultrafast. See the FFmpeg and x264 Encoding Guide.

– llogan – 2014-01-04T19:46:21.820

Right now I have plenty of storage space, but I was just trying to think ahead in case I get low. I figured out the problem and have updated the question. Thanks for your help. – Jacob O'Bryant – 2014-01-06T04:43:34.033

No answers