forked from scikit-video/scikit-video
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbench_vread.py
92 lines (72 loc) · 2.88 KB
/
bench_vread.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""
=======================
Video Reader benchmark
=======================
Benchmark using the video loading routines included in skvideo.
Output:
Fastest performance of loading 3 test videos:
------------------------------------------------------------
skvideo.io.vread (FFmpeg) 0.718217 seconds
skvideo.io.vread (LibAV) 0.815005 seconds
skvideo.io.vreader (FFmpeg) 0.671952 seconds
skvideo.io.vreader (LibAV) 0.774765 seconds
"""
# Author: Todd Goodall <[email protected]>
# License: BSD clause
from time import time
import numpy as np
import skvideo.datasets
try:
xrange
except NameError:
xrange = range
if __name__ == "__main__":
#add in all videos that come with skvideo
videos = []
videos.append(skvideo.datasets.bigbuckbunny())
videos.append(skvideo.datasets.fullreferencepair()[0])
videos.append(skvideo.datasets.fullreferencepair()[1])
vread_times_ffmpeg = []
vread_generator_times_ffmpeg = []
vread_times_libav = []
vread_generator_times_libav = []
# run 10 times, then take min time
for i in xrange(10):
# first test time to load each video completely into memory
time_start = time()
for vnames in videos:
skvideo.io.vread(vnames, backend='ffmpeg')
time_end = time()
vread_times_ffmpeg.append(time_end - time_start)
# next test the speed at which the frame generator works
time_start = time()
for vnames in videos:
vobj = skvideo.io.vreader(vnames, backend='ffmpeg')
for frame in vobj:
pass
time_end = time()
vread_generator_times_ffmpeg.append(time_end - time_start)
# run 10 times, then take min time
for i in xrange(10):
# first test time to load each video completely into memory
time_start = time()
for vnames in videos:
skvideo.io.vread(vnames, backend='libav')
time_end = time()
vread_times_libav.append(time_end - time_start)
# next test the speed at which the frame generator works
time_start = time()
for vnames in videos:
vobj = skvideo.io.vreader(vnames, backend='libav')
for frame in vobj:
pass
time_end = time()
vread_generator_times_libav.append(time_end - time_start)
print("")
print("Fastest performance of loading %d test videos:" % (len(videos),))
print("-" * 60)
print("%s %f seconds" % ("skvideo.io.vread (FFmpeg)".ljust(35), np.min(vread_times_ffmpeg)))
print("%s %f seconds" % ("skvideo.io.vread (LibAV)".ljust(35), np.min(vread_times_libav)))
print("%s %f seconds" % ("skvideo.io.vreader (FFmpeg)".ljust(35), np.min(vread_generator_times_ffmpeg)))
print("%s %f seconds" % ("skvideo.io.vreader (LibAV)".ljust(35), np.min(vread_generator_times_libav)))
print("")