Reputation: 1977
As OBS Studio lacks a visual indicator to show how far a video has progressed (and when you need to advance to the next scene), I was wondering if there is a command-line option (or solution) to get FFMPEG to re-encode the video and show a progress bar at the bottom of the video that shows how long the video has been playing so far.
Is there such a feature?
Upvotes: 3
Views: 4105
Reputation: 134
Here I provide elaboration for the accepted answer.
Along the way, I also answer Mario Mey's question of what "H-h" means.
Visualization:
Explanation:
color[bar]
and [bar]overlay
means the output bar
from color goes into the same-named input of overlay.
[0]
by default refers to the input file, here given into the overlay filter.
ffmpeg-filters 16.11 color (color c; size s)
red
1280x10
ffmpeg-filters 11.183 overlay (x; y; shorttest)
-w
(negative number) pixels away from the left, positively increasing by +(w/10)
, where 10
is total seconds, across time *t
(fractional seconds at instant), until it reaches the rightmost edge.H-h
⁸ pixels away from the bottom.-c:a copy
copies the audio stream, if it has one.
Upvotes: 2
Reputation: 133713
Here's a simple 3 second example using an animated overlay:
ffmpeg -i input.mp4 -filter_complex "color=c=red:s=1280x10[bar];[0][bar]overlay=-w+(w/10)*t:H-h:shortest=1" -c:a copy output.mp4
What you will have to change:
In the color filter I used 1280
as an example to match the width of input.mp4
. You can use ffprobe
to get the width or the scale2ref filter to resize to match input.mp4
.
In the overlay filter I used 10
as an example for the total duration in seconds of input.mp4
. You can use ffprobe
to get the duration.
Upvotes: 14