@@ -12,6 +12,7 @@ function Video({
12
12
previewWebP,
13
13
previewGif,
14
14
videoSepia,
15
+ videoScreenshots,
15
16
} ,
16
17
...props
17
18
} ) {
@@ -20,9 +21,9 @@ function Video({
20
21
< h2 > Example: { name . substring ( 0 , 1 ) . toUpperCase ( ) + name . substring ( 1 ) } </ h2 >
21
22
< h3 > Screenshots at 1s, 50% and 99%:</ h3 >
22
23
< div className = "screenshots" >
23
- { videoH264 . screenshots . map ( ( { path } ) => (
24
+ { videoScreenshots . map ( ( { publicURL } ) => (
24
25
< div key = "path" >
25
- < img src = { path } />
26
+ < img src = { publicURL } />
26
27
</ div >
27
28
) ) }
28
29
</ div >
@@ -39,12 +40,22 @@ function Video({
39
40
< img loading = "lazy" src = { previewGif . path } alt = "" />
40
41
</ picture >
41
42
< h3 > Video as optimized h264 & h265:</ h3 >
42
- < video playsInline preload = "auto" controls >
43
+ < video
44
+ playsInline
45
+ preload = "auto"
46
+ poster = { videoScreenshots [ 0 ] . publicURL }
47
+ controls
48
+ >
43
49
< source src = { videoH265 . path } type = "video/mp4; codecs=hevc" />
44
50
< source src = { videoH264 . path } type = "video/mp4; codecs=avc1" />
45
51
</ video >
46
52
< h3 > Custom video converter:</ h3 >
47
- < video playsInline preload = "auto" controls >
53
+ < video
54
+ playsInline
55
+ preload = "auto"
56
+ poster = { videoScreenshots [ 0 ] . publicURL }
57
+ controls
58
+ >
48
59
< source src = { videoSepia . path } type = "video/mp4; codecs=avc1" />
49
60
</ video >
50
61
</ div >
@@ -80,12 +91,8 @@ export const query = graphql`
80
91
overlayX: "end"
81
92
overlayY: "start"
82
93
overlayPadding: 25
83
- screenshots: "1,50%,99%"
84
94
) {
85
95
path
86
- screenshots {
87
- path
88
- }
89
96
}
90
97
videoH265(
91
98
overlay: "gatsby.png"
@@ -107,6 +114,9 @@ export const query = graphql`
107
114
previewGif: videoGif(maxWidth: 300, fps: 4, duration: 2) {
108
115
path
109
116
}
117
+ videoScreenshots(timestamps: ["1", "50%", "99%"]) {
118
+ publicURL
119
+ }
110
120
}
111
121
}
112
122
}
0 commit comments