-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.txt
95 lines (84 loc) · 4.54 KB
/
README.txt
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
93
94
95
***Harbingers Player***
👁️🗨️ Live URL: https://harbingers-player.netlify.app
- The raw url loads a random work.
- Add a hash to go to a specific work (see `artworks.mjs`):
Ex: https://harbingers-player.netlify.app/#ff-01
- Add a "?provenance=N" query parameter to test provenance levels from 0-10.
Ex: https://harbingers-player.netlify.app/?provenance=5#sanctum
⚙️ TODO
- [] Replace all black "webp" stills with stills that best represent each video.
- [] Communicate somehow with native Feral File website preloader to extend
its duration OR design a preloader / spinner to go in front of the `webp` stills that now appear when each video is buffering.
✅ DONE
- [x] Fix webGL texture initialization error.
- [x] Prepopulate 'style' and 'max distortion' values for each work using
the data from the artist submitted ZIP files.
- [x] Write a build script that outputs a directory for each work.
- [x] Spit the current name to the `index.html` file upon copying.
- [x] Add `build` directory to .gitignore.
- [x] Include `genetically-modified-gods.pdf` with `artemis`.
- [x] Add "?provenance=n" query parameter.
- [x] Go to a random, valid hash if params is empty.
- [x] Add hash shortcuts for each piece.
- [x] Clean-up / wire up parameters list so that it's easier to automate into
separate builds.
- [x] Remove parameters from `parameters.js` that aren't set dynamically.
- [x] Hardcode resolutions of all videos / video specific parameters into an
array matched by the `videoName` property.
- [x] Rename `videoName` property.
- [x] Incorporate all the videos from the exhibition.
- [x️] Generate a still for each video.
- [x] Transcribe each video and add to the repo.
- [x] Add scrubbable progress bar.
- [x] Add pause functionality.
- [x] See if the shader can be paused.
- [x] Add a transparent play button while paused.
- [x] Pause and play
- [x] Fix vertical centering issue on https://feralfile2.dev.bitmark.com/artworks/baby-video-xk5.
- [x] Fix zooming video issue.
- [x] Add to a repo and hook up to netlify.
💁
***Building & Uploading to Feral File***
0. Make sure `git lfs` is installed locally: https://git-lfs.github.com/.
- Simply run `git lfs install`.
1. Clone this repository. It should take awhile for the media files to download.
2. Make sure `node` (and `npm`) is installed.
3. Run `npm install` to add any dependencies.
4. Run `npm build` to populate the `build` directory with zippable directories for each work.
5. Inspect, zip and upload each directory as needed.
⚠️ Upload Test: https://feralfile2.dev.bitmark.com/artworks/jeffrey-u6u?fromExhibition=jeffrey-multi-unique-0c7
📓 Video notes:
Using ffmpeg to extract the first frame of each video as a still:
- `ffmpeg -i input.mp4 -vf "select=eq(n\,0)" output.webp`
Using ffmpeg to transcode a video into an mp4 container.
- `ffmpeg -i designer-baby.mov -crf 18 designer-baby.mp4`
🖊️ Video encoding log:
- [x] artemis.mp4 (not transcoded)
- [x] 'Designer Baby.mov' -> designer-baby.mp4
- [x] FF_01.mp4 -> ff-01.mp4
- [x] FF_02.mp4 -> ff-02.mp4
- [x] 'Hollow Ocean.mp4' -> hollow-ocean.mp4 (not transcoded)
- [x] ICOSAHEDRON.mp4 -> icosahedron.mp4
- [x] 'LES MUTANTS (1).mov' -> les-mutants-1.mp4
- [x] 'LES MUTANTS (2).mov' -> les-mutants-2.mp4
- [x] 'LES MUTANTS(3).mov' -> les-mutants-3.mp4
- [x] 'LIZARD KING.mp4' -> lizard-king.mp4 (not transcoded)
- [x] 'Ojo! Don’t Slip on the Ba-nano Peal.mov' -> ojo-dont-slip-on-the-ba-nano-peal.mp4
- [x] Post-Pangea.m4v -> post-pangea.mp4
- [x] SANCTUM.mp4 -> sanctum.mp4
- [x] 'Tin y Pluri.m4v' -> tin-y-pluri.mp4
📸️ Still generation commands:
ffmpeg -i artemis.mp4 -vf "select=eq(n\,0)" artemis.webp
ffmpeg -i designer-baby.mp4 -vf "select=eq(n\,0)" designer-baby.webp
ffmpeg -i ff-01.mp4 -vf "select=eq(n\,0)" ff-01.webp
ffmpeg -i ff-02.mp4 -vf "select=eq(n\,0)" ff-02.webp
ffmpeg -i hollow-ocean.mp4 -vf "select=eq(n\,0)" hollow-ocean.webp
ffmpeg -i icosahedron.mp4 -vf "select=eq(n\,0)" icosahedron.webp
ffmpeg -i les-mutants-1.mp4 -vf "select=eq(n\,0)" les-mutants-1.webp
ffmpeg -i les-mutants-2.mp4 -vf "select=eq(n\,0)" les-mutants-2.webp
ffmpeg -i les-mutants-3.mp4 -vf "select=eq(n\,0)" les-mutants-3.webp
ffmpeg -i lizard-king.mp4 -vf "select=eq(n\,0)" lizard-king.webp
ffmpeg -i ojo-dont-slip-on-the-ba-nano-peal.mp4 -vf "select=eq(n\,0)" ojo-dont-slip-on-the-ba-nano-peal.webp
ffmpeg -i post-pangea.mp4 -vf "select=eq(n\,0)" post-pangea.webp
ffmpeg -i sanctum.mp4 -vf "select=eq(n\,0)" sanctum.webp
ffmpeg -i tin-y-pluri.mp4 -vf "select=eq(n\,0)" tin-y-pluri.webp