2

I got a frame rate under 1 and can't seem to get ffmpeg to stamp the time code

Doesn't work

ffmpeg -start_number 0 -framerate 32 -y -i "f0_t%d_i0_ch1_c0_r0_z0_mqdic.jpg" -vframes 32 -vf "drawtext=fontfile=DejaVuSans.ttf:timecode='00\:00\:00\:00':timecode_rate=0.28571:fontcolor=red:fontsize=64: box=1: boxcolor=0x00000000@1,setpts=PTS" -pix_fmt yuv420p  -c:v libx264 "part9_dynamics_slower_sampling_z0.avi"

with an error

[Parsed_drawtext_0 @ 00000283dbab5f00] Timecode frame rate must be specified
[AVFilterGraph @ 00000283dbab58c0] Error initializing filter 'drawtext' with args 'fontfile=DejaVuSans.ttf:timecode=00\:00\:00\:00:timecode_rate=0.28571:fontcolor=red:fontsize=64: box=1: boxcolor=0x00000000@1'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

Works as expected

ffmpeg -start_number 0 -framerate 32 -y -i "f0_t%d_i0_ch1_c0_r0_z0_mqdic.jpg" -vframes 32 -vf "drawtext=fontfile=DejaVuSans.ttf:timecode='00\:00\:00\:00':timecode_rate=1:fontcolor=red:fontsize=64: box=1: boxcolor=0x00000000@1,setpts=PTS" -pix_fmt yuv420p  -c:v libx264 "part9_dynamics_slower_sampling_z0.avi"

In one case timecode_rate=0.28571 and in the other timecode_rate=1

So, how do I stamp in the correct, 0.28571 frame rate?

1 Answer 1

2

The timecode_rate value is rounded and then applied, so 0.2857 gets rounded down to 0, which is considered invalid. That error message should be refined.

Since you seem to want timecode value to increase by 0.2857 after each 32 frames, you can supply a custom text value

text='%{e\:0.2857*n/32}'

Remove the timecode and timecode_rate options.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.