Is there a way to "calculate" speed/duration for animation?
It seems a little too fast?

There is no &quot;right speed&quot; when it comes to animation. It all depends on what  you are intending to do.

Is there a way to &quot;calculate&quot; the best speed/duration for such a video ?

Best (or any other superlative) is beyond the scope of this site, as there is no categorical way to answer...
But calculating the duration of an animation is not only possible, but absolutely necessary for anyone trying to express ideas through animation.
To only way to get a sense of how your animation is working out, is to pre-visualize it in real time, meaning: evaluating while playing back at a sustained pace at the target framerate.
For simple scenes you can just playback the animation on the 3D vieport at the desired target rate.
As the scene gets more complex your system might not be able to compute the transformations in real time.
As you play your scene you'll see a number on the top left of the screen that reflects the actual playback speed. If those numbers are red it means that the playback speed is not the correct one and what you are seeing is not an accurate representation of your scene.

At that point you can use a multitude of strategies to get a sense the actual pace of the aninmation:

Visualize things in wireframe mode or bounding box.

Do a quick render in OpenGL

Render a low resolution file using a single simple material for the whole scene. Simplify it by reducing the numbers of subdivisions, baking all bakeable actions/surfaces/simulations. Hide objects that do not move or are irrelevant to the elements you want to evaluate. In other words, use every trick you can think of to simplify your scene and accurately evaluate it.


In short, make sure you have a good idea of what the pace of the animation is before you spend a lot of time rendering the real animation in full detail, only to find out errors that could have been prevented by pre-visualizing.
How do you modify the timing of animated objects?
The pace of animated objects is an easy formula: how much are the elements transforming over how many frames (time).
To slow something down you need to have less transformation occur on the same number of frames (time):

Or have the transformation occur over a longer period of time:

In the simplest form of animation you have a start key frame and and end keyframe. Spacing the keyframes apart in time will make the transformation slower, getting those keyframes closer together will accelerate the transformation.

See this post for more details
For complex animations where all the elements are working fine with each other, and you don't want to affect the placement of keyframes in any way,  you can use the Time-Remapping tool on the &quot;dimensions&quot; section of the properties panel:

More info on this post.

And are there any tools in Blender to &quot;play&quot; with the speed of your video ?

There are, and they should really be avoided and thought of as the absolute last resort.
Re-timing a rendered video is only going to create a new set problems. Not only will you be dealing with decompression-recompression issues, and multigeration quality loss, but even if your workflow involves real lossless formats you will be dealing with some form of spatial and temporal interpolation that blender handles very poorly.
When you are re-timing video, you are either creating new information for new frames by interpolating existing ones, or discarding/combinig frames to compress the time. Depending on how severe the changes are you'll be introducing stuttering/flicker to scene or will have issues with inaccurate motion blur.
To re-time video properly you need some form of otpical flow. Blender does not have any such tools.
There are some amazing tools out there that will allow you to re-time video like twixtor (Not cheap) or slowmovideo (open source) both require in depth knowledge to make them work correctly... Adobe Premiere, Davinci Resolve or Fusion have basic tools for optical flow

It is a bit of trial and error.

Just like life...
So to summarize:
Try to get the rhythm of your animation before you render, not as an afterthought.