[FFmpeg-user] SMPTE when converting to JPEGs

Moritz Barsnick barsnick at gmx.net
Tue Oct 24 14:31:16 EEST 2017


On Tue, Oct 24, 2017 at 13:00:53 +0200, Wolfgang Hugemann wrote:
> Well, of course I used ffmpeg; otherwise I wouldn't ask it in this forum.

Silly me.

> > It's possible though to
> > instruct ffmpeg to create one output image for every input frame
> > (regardsless of its timestamp or frame rate)
> 
> This is what I am looking for.

The option
    -vsync passthrough
should do the trick. Let us know if it does (and if it doesn't of
course).

> C:\Programme\ffmpeg\bin\ffmpeg -ss 00:01:30.00 -t 00:00:04.00 -i 
> [CH01]14_10_43.avi -vf 
> "drawtext=fontfile=/Windows/Fonts/arial.ttf:fontcolor=yellow:fontsize=350:timecode='09\:57\:00\:00':r=30:x=15:y=50" 
> -q:v 3 _frames\%%02d.jpg

I don't know how drawtext behaves if the input isn't actually 30 fps.
Probably, the r= option only decides whether to count to 25 or to 30.

> ffmpeg version N-79630-g9ac154d Copyright (c) 2000-2016 the FFmpeg developers

This is a bit old, BTW, but it doesn't matter for this particular
issue.

> Output #0, image2, to '_frames\%02d.jpg':
>    Metadata:
>      encoder         : Lavf57.34.103
>      Stream #0:0: Video: mjpeg, yuvj420p(pc), 1920x1080, q=2-31, 200 kb/s, 30 fps, 30 tbn

ffmpeg assumes 30 fps for the output. I believe it copied the value
from what the input claims to have.

> frame=  119 fps= 72 q=3.0 Lsize=N/A time=00:00:03.96 bitrate=N/A dup=23 
> drop=0 speed=2.39x

And indeed, just to confirm, 23 frames were duplicated ("dup=23") in
oder to achieve the constant output framerate.

You can also use ffprobe to display each and every frame's timestamps,
and see whether there are irregularities in them. (That's just if
you're interested in the internals, or in debugging.) I don't know of a
parser which does that for you, I'd be happy to know if there is one.

Viele Grüße,
Moritz


More information about the ffmpeg-user mailing list