@@ -492,6 +492,13 @@ impl ProgressInfo {
492
492
. map ( |frames| self . encoded_size * frames / self . frames_encoded ( ) )
493
493
. unwrap_or_default ( )
494
494
}
495
+
496
+ // Estimates the remaining encoding time in seconds, if the number of frames is known
497
+ pub fn estimated_time ( & self ) -> f64 {
498
+ self . total_frames
499
+ . map ( |frames| ( frames - self . frames_encoded ( ) ) as f64 / self . encoding_fps ( ) )
500
+ . unwrap_or_default ( )
501
+ }
495
502
496
503
// Number of frames of given type which appear in the video
497
504
pub fn get_frame_type_count ( & self , frame_type : FrameType ) -> usize {
@@ -558,17 +565,18 @@ impl fmt::Display for ProgressInfo {
558
565
if let Some ( total_frames) = self . total_frames {
559
566
write ! (
560
567
f,
561
- "encoded {}/{} frames, {:.2 } fps, {:.2} Kb/s, est. size: {:.2} MB" ,
568
+ "encoded {}/{} frames, {:.3 } fps, {:.2} Kb/s, est. size: {:.2} MB, est. time: {:.0} s " ,
562
569
self . frames_encoded( ) ,
563
570
total_frames,
564
571
self . encoding_fps( ) ,
565
572
self . bitrate( ) as f64 / 1024f64 ,
566
- self . estimated_size( ) as f64 / ( 1024 * 1024 ) as f64
573
+ self . estimated_size( ) as f64 / ( 1024 * 1024 ) as f64 ,
574
+ self . estimated_time( )
567
575
)
568
576
} else {
569
577
write ! (
570
578
f,
571
- "encoded {} frames, {:.2 } fps, {:.2} Kb/s" ,
579
+ "encoded {} frames, {:.3 } fps, {:.2} Kb/s" ,
572
580
self . frames_encoded( ) ,
573
581
self . encoding_fps( ) ,
574
582
self . bitrate( ) as f64 / 1024f64
0 commit comments