Jasna version: 0.10.0
OS: Windows
GPU: NVIDIA RTX 3060 Laptop GPU
Input FPS: 30 FPS
Output FPS: 29.95 FPS
Description
I found a frame timestamp issue when processing a 30 FPS video with Jasna.
The original video is exactly 30 FPS. After processing it with Jasna, the output still reports r_frame_rate=30/1, but the actual average frame rate is approximately 29.9518 FPS.
I also checked the timestamps of all 39,353 output frames. The timestamps are quantized to approximately 33 ms / 34 ms intervals instead of maintaining the precise 33.333 ms interval required for 30 FPS.
For example, the beginning of the output timestamps is:
0.000
0.033
0.067
0.100
0.133
0.167
0.200
0.233
...
The complete timestamp list contains 39,353 frames.
Input video
codec_name=h264
profile=High 4:4:4 Predictive
width=880
height=540
pix_fmt=yuv420p
r_frame_rate=30/1
avg_frame_rate=30/1
time_base=1/1000
duration=N/A
nb_frames=N/A
Jasna output
codec_name=h264
profile=High
width=880
height=540
pix_fmt=yuv420p
r_frame_rate=30/1
avg_frame_rate=629648000/21022037
time_base=1/16000
duration=1313.877313
nb_frames=39353
The reported average frame rate is:
629648000 / 21022037 = 29.9518 FPS
Timestamp analysis
I extracted the timestamps of all output frames using ffprobe.
There are 39,353 frames in total.
The first timestamp is:
0.000000
The last timestamp is:
1313.844000
This results in an actual average frame rate of approximately:
29.9518055 FPS
The timestamps appear to be quantized to millisecond-level intervals, with frame intervals commonly alternating between approximately 33 ms and 34 ms.
For a true 30 FPS video, the frame interval should be approximately:
33.333333 ms
Expected behavior
A 30 FPS input should remain at exactly 30 FPS after processing when no frame-rate conversion is requested.
The output frame timestamps should maintain the correct 30 FPS timing, approximately 33.333 ms per frame.
Actual behavior
The output contains the correct number of frames, but the generated timestamps result in an average frame rate of approximately 29.9518 FPS.
r_frame_rate remains 30/1, while avg_frame_rate becomes approximately 29.9518 FPS.
This appears to be related to timestamp generation or timestamp precision during the processing/export stage.
Additional information
The input uses:
time_base=1/1000
while the Jasna output uses:
time_base=1/16000
I have also attached the complete frame timestamp output for the Jasna-generated video.
Could you please check whether Jasna is generating or converting frame timestamps with insufficient precision for constant 30 FPS video?
Thank you.

Jasna version: 0.10.0
OS: Windows
GPU: NVIDIA RTX 3060 Laptop GPU
Input FPS: 30 FPS
Output FPS: 29.95 FPS
Description
I found a frame timestamp issue when processing a 30 FPS video with Jasna.
The original video is exactly 30 FPS. After processing it with Jasna, the output still reports r_frame_rate=30/1, but the actual average frame rate is approximately 29.9518 FPS.
I also checked the timestamps of all 39,353 output frames. The timestamps are quantized to approximately 33 ms / 34 ms intervals instead of maintaining the precise 33.333 ms interval required for 30 FPS.
For example, the beginning of the output timestamps is:
0.000
0.033
0.067
0.100
0.133
0.167
0.200
0.233
...
The complete timestamp list contains 39,353 frames.
Input video
codec_name=h264
profile=High 4:4:4 Predictive
width=880
height=540
pix_fmt=yuv420p
r_frame_rate=30/1
avg_frame_rate=30/1
time_base=1/1000
duration=N/A
nb_frames=N/A
Jasna output
codec_name=h264
profile=High
width=880
height=540
pix_fmt=yuv420p
r_frame_rate=30/1
avg_frame_rate=629648000/21022037
time_base=1/16000
duration=1313.877313
nb_frames=39353
The reported average frame rate is:
629648000 / 21022037 = 29.9518 FPS
Timestamp analysis
I extracted the timestamps of all output frames using ffprobe.
There are 39,353 frames in total.
The first timestamp is:
0.000000
The last timestamp is:
1313.844000
This results in an actual average frame rate of approximately:
29.9518055 FPS
The timestamps appear to be quantized to millisecond-level intervals, with frame intervals commonly alternating between approximately 33 ms and 34 ms.
For a true 30 FPS video, the frame interval should be approximately:
33.333333 ms
Expected behavior
A 30 FPS input should remain at exactly 30 FPS after processing when no frame-rate conversion is requested.
The output frame timestamps should maintain the correct 30 FPS timing, approximately 33.333 ms per frame.
Actual behavior
The output contains the correct number of frames, but the generated timestamps result in an average frame rate of approximately 29.9518 FPS.
r_frame_rate remains 30/1, while avg_frame_rate becomes approximately 29.9518 FPS.
This appears to be related to timestamp generation or timestamp precision during the processing/export stage.
Additional information
The input uses:
time_base=1/1000
while the Jasna output uses:
time_base=1/16000
I have also attached the complete frame timestamp output for the Jasna-generated video.
Could you please check whether Jasna is generating or converting frame timestamps with insufficient precision for constant 30 FPS video?
Thank you.