-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
209 lines (194 loc) · 15 KB
/
index.html
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!DOCTYPE html>
<html lang="en-us">
<head>
<title color="">Universal Smart Video Format - USV</title>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta content="width=device-width,initial-scale=1,minimal-ui,shrink-to-fit=no,user-scalable=no" name="viewport">
<link rel="shortcut icon" href="icon.png" type="image/x-icon">
<link rel="icon" href="icon.png" type="image/x-icon">
<link rel="logo" href="flag.svg" border="true" />
<base href="" target="_top" id="base">
<script>base.href = document.location.href.replace("/media", "").replace("index.html", "").replace(/[&?]wrapper=False/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, "")</script>
<!-- <link rel="stylesheet" href="https://unpkg.com/vue-material@beta/dist/vue-material.min.css">
<link rel="stylesheet" href="https://unpkg.com/vue-material@beta/dist/theme/default.css">-->
<script type="text/javascript" src="plugins/jQuery/jquery.min.js"></script>
<script type="text/javascript" src="plugins/Popper.js/popper.min.js"></script>
<script type="text/javascript" src="plugins/Bootstrap/js/bootstrap.min.js"></script>
<script src="plugins/Bootstrap/themes/material/js/material.min.js"></script>
<zeronet><script type="text/javascript" src="js/ZeroFrame.js"></script>
<script type="text/javascript" src="plugins/ZeroDevLib/ZeroPage.js"></script></zeronet>
<script type="text/javascript" src="js/page-common.js"></script>
<link href="plugins/Bootstrap/themes/material/css/material.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="css/page-common.css">
<link rel="stylesheet" type="text/css" href="css/app-common.css">
<link rel="stylesheet" type="text/css" href="css/page-custom.css">
<link rel="stylesheet" type="text/css" href="css/app-custom.css">
<link href="Fonts/Roboto/font.css" rel="stylesheet">
<link href="Fonts/Material Icons/font.css" rel="stylesheet">
<zeronet><link href="Fonts/Text Me One/font.css" rel="stylesheet"></zeronet>
<meta name="pehtml" content="true">
<meta name="directory" content="css, js, img, snd">
<meta name="description" content="">
<meta name="keywords" content="video, format, png, svg, flac, ogg, tar.gz-archives, usv, tar.gz">
</head>
<body id="body">
<div id="app">
<header><logo title="Universal Smart Video format - USV"></logo></header>
<div class="content">
<article>
<center><span>Home</span><span> | </span><a href="specs/">Specs</a><span> | </span><a href="/blog.usvformat.bit/">Blog</a><span> | </span><a href="/forum.usvformat.bit/">Forum</a><span> | </span><a href="/me.mkg20001.bit/?Profile/12h51ug6CcntU2aiBjhP8Ns2e5VypbWWtv/1LthwGGue7HvT6VyiHabgs4MSA1nwbQ98x/usv@zeroid.bit">Profile</a><span> | </span> <a href="https://github.com/Universal-Smart-Video-Format">Github</a></center>
<p align="center"><img width="600px" alt="USV - Universal Smart Video format" src="logotype.png" title="USV - Universal Smart Video format"></p>
<hr/>
<center>
<h1>Principles</h1>
<table>
<tbody>
<tr>
<td><center><img width="100px" src="img/modular.png"/>
<h2>Modular</h2>
<p>No need for complex binary editing and file duplication. Just open on any archiver as a .tar.gz file, and change any data yourself. Version it on your favorite VCS without relying on Git LFS. <small>Don't want to edit it manually like a crazy scientist? It's ok, you can do it on a video editor, and the result will not be a brand new video, but just a edition.</small></p></center></td>
<td><center><img width="100px" src="img/upgradeable.png"/>
<h2>Upgradeable</h2>
<p>After editing, use <a href="https://aragon.org/" target="blank">Aragon</a>'s <a href="https://github.com/pandonetwork/pando" target="blank">Pando</a> or <a href="https://datproject.org/" target="blank">Dat Protocol</a> to version your changes, as a software being updated. Diff it as a natural folder.</p></center></td>
<td><center><img width="100px" src="img/multiconnection.png"/>
<h2>Multi-connection (soon)</h2>
<p>According to your network condition, USV videos are prioritarily downloaded at SQCIF quality (lower than 240p and even QCIF - and if you seed a higher quality, you could seed the lowest to help newcomers), ideal for slow/limited connections. But it supports up to 8640p (16K).</p></center></td>
</tr>
<tr>
<td><center><img width="100px" src="img/multilanguage.png"/>
<h2>Multi-language (soon)</h2>
<p>Why limiting to subtitles if you can have the option to watch the speaking in your native language? Some people <a href="https://www.reddit.com/r/TrueFilm/comments/30ekfw/subtitles_and_the_effect_they_have_on_the_viewing/" target="blank">dislikes subtitles as being distractive</a>, making you lose details of scenes, and not accessible for who is blind. You can watch dubbed videos and contribute yourself with your team. A dubber is turning a serious talk into a comedy with a wrong dubbing? Change the dubber through voting (Aragon). If you want to learn a new language or can't hear (or simply <a href="https://www.sbs.com.au/guide/article/2016/07/07/why-people-think-they-hate-subtitles" target="blank">hates dubbing and loves subtitles</a>), subtitles are also supported using <a href="https://www.w3.org/TR/webvtt1/" target="blank">VTT format</a>. <small>Prefers SRT? Not a web standard, but also supported as USV is modular.</small></p></center></td>
<td><center><img width="100px" src="img/multinetwork.png"/>
<h2>Multi-network</h2>
<p>USV is made for the web, and more for the decentralized web (DWeb, Web3 or web 3.0). It is designed to fit any network and protocol with its modularity and lightweight design.</p></center></td>
<td><center><img width="100px" src="img/interactive.png"/>
<h2>Interactive (soon)</h2>
<p>Engage your audience in a brand new way. Instead of asking for a like or subscribe, show the buttons appearing on your hand. Use your creativity. There are more options for making your video interactive, such as cards, annotations and blockscreens.</p></center></td>
</tr>
<tr>
<td><center><img width="100px" src="img/css.png"/>
<h2>CSS (Cascating Style Sheets) (soon)</h2>
<p>Create or apply amazing effects, filters and transitions; as if your video were a webapp/HTML page.</p></center></td>
<td><center><img width="100px" src="img/multidevice.png"/>
<h2>Multi-device</h2>
<p>By being lightweight, USV videos are playable even on a smart-watch. By being quality-scalable, it can be finely playable on a 16K televisor and upper through its modulary.</p></center></td>
<td><center><img width="100px" src="img/streammable.png"/>
<h2>Streammable</h2>
<p>Like .zip, no compressed file formats does support live-streamming? Being a folder on classic web, Aragon's Pando or Dat Protocol makes USV streammable. Quality-scaling makes streams accessible for any device or connection. Also, a .usv file is a .tar.gz archive, <a href="https://stackoverflow.com/questions/48475351/untar-pack-a-tar-file-while-downloading-is-it-streamable" target="blank">which is streammable</a>.</p></center></td>
</tr>
</tbody>
</table>
<small>Table made thanks to <a href="https://divtable.com/generator/" target="blank">divtable.com</a>. Not a required credit, but voluntary act of thanks.</small>
</center>
<h1>FAQs - Frequently Asked Questions</h1>
<h4>USV is a compressed file or a folder containing frames as images. Compressed file isn't streammable? And as folder, wouldn't it overload by downloading image by image? Why not use sprite sheets?</h4>
<p>Compressed files like .zip aren't streammable, but USV file uses .tar.gz, which <a href="https://stackoverflow.com/questions/48475351/untar-pack-a-tar-file-while-downloading-is-it-streamable" target="blank">is streammable</a>. As folder, by following HTTP/2 features, sprite sheets shouldn't be used. USV is open for decentralized networks/web3 that implement transport protocols that, like HTTP/2, supports stream of multiple images at the same request.</p>
<ul>
<li>USV file is in .tar.gz</li>
<li>.tar.gz is streammable</li>
<li>USV video is compressed and streammable</li>
<li>Even as folder with individual images, a USV video is fast if using HTTP/2</li>
<li>ZeroNet/Dat/IPFS should have a transport that is fastest as HTTP/2</li>
</ul>
<h4>How to download a .tar.gz while extracting it, in a web browser?</h4>
<p>That is yet being discussed.</p>
<ul><li>Web Workers could be used</li></ul>
<h4>I don't want to seed the folder and the .tar.gz of the same USV video!</h4>
<p>The idea is to not support a folder, but just the .tar.gz file.</p>
<h4>But if versioning a .tar.gz with Dat, it will version a binary, which is a bloat!</h4>
<p>True. Which is against the USV's point of being versionable. Also, using folders is bad for a video format, as you seed a folder, and other will seed a archive, splitting the same video in different formats, which is bad.</p>
<ul>
<li>Dat and IPFS/Pando should receive a update to version inside a compressed file</li>
<li><a href="http://web.archive.org/web/20190510180052/https://github.com/datproject/dat/issues/1107" target="blank">Dat is already commited for supporting versioning inside compressed files</a>.</li>
<li><strike>Alternative workaround: video being a folder (Dat), and frames being .tar.gz file. But that is bad agains't its shareability (or not, as Dat is a different protocol, so one shares .usv - .tar.gz - for direct sharing, and other shares its Dat/IPFS URL as folder)</strike> - not practical, as the frames needs to also be versioned</li>
</ul>
<h4>Why JavaScript (usv.js and its US1 codec) instead of native language?</h4>
<p>Following the openness of the Web and respecting the big amount of web developers that uses JavaScript (and the growing amount of web apps using PWA, Cordova and Electron), USV prefers to mainly support JavaScript. Closed-source/proprietary ARM and x86 are natively compatible with traditional video formats, but chips based on RISK-V could have JavaScript as native. But instead of being a JS-maximist - as a truly open and modular format - USV supports other languages, codecs and everything as its whole structure is replaceable. Regarding JavaScript, USV uses WASM (WebAssembly).</p>
<h4>Is any USV video ready to have its Dat/IPFS URL?</h4>
<p>Yes, as when Dat/IPFS/Pando supports versioning inside a compressed file, just upgrade the video as a compressed file, and its versioning will be kept.</p>
<ul>
<li>Just create a USV video, upload its folder to ZeroNet/Dat/IPFS, and change/upgrade it when needed.</li>
</ul>
<h4>I want to directly download a 240p video instead of firstly downloading its SQCIF.</h4>
<p>USV automatically skips a lower quality according to your network condition, and for a first time (usv.js) asks if user wants to seed the SQCIF version of videos.</p>
<h4>If I download a 240p video, I don't want to seed its SQCIF quality!</h4>
<p>You aren't obligued to seed it, but if you do this voluntary work, you will be helping newcomers that haven't a good network connection.</p>
<hr/>
<zeronet><div id="out"></div>
<script>
class Page extends ZeroFrame {
setSiteInfo(site_info) {
var out = document.getElementById("out")
out.innerHTML =
"Page address: " + site_info.address +
"<br>- Peers: " + site_info.peers +
"<br>- Size: " + site_info.settings.size +
"<br>- Modified: " + (new Date(site_info.content.modified*1000))
}
onOpenWebsocket() {
this.cmd("siteInfo", [], function(site_info) {
page.setSiteInfo(site_info)
})
}
onRequest(cmd, message) {
if (cmd == "setSiteInfo")
this.setSiteInfo(message.params)
else
this.log("Unknown incoming message:", cmd)
}
}
page = new Page()
</script></zeronet>
<hr/>
</article>
<comments>
<h1 id="comments"><i class="material-icons">comment</i> Comments <span class="badge"><a href="http://usv.js.org/#disqus_thread">Loading...</a></span></h1>
<blockquote>
<clearnet>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://usvformat.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</clearnet>
<zeronet>ZeroNet doesn't have a commenting system yet.</zeronet>
</blockquote>
</comments>
<footer><div class="footer-shadow"></div>
<center>Last update in 10/05/2019 at 16:12</center><a href="https://plasnerd.github.io/Framework.js/" target="blank"><img src="https://plasnerd.github.io/Framework.js/img/seal-2.png" width="167px" title="Built with FrameworkJS" style="-webkit-user-drag:element"></a><a href="https://plasnerd.github.io/PEHTML/" target="blank"><img src="https://plasnerd.github.io/PEHTML/img/seal-2.png" width="167px" height="94px" style="-webkit-user-drag:element"></a>
<div class="social-icons">
<a href="https://riot.im/app/#/room/#openplanet:matrix.org" target="blank"><img src="img/social/riot.png" width="40px" height="40px" title="Chat with us or get support" alt="Riot.im" class="round"></a>
<a href="https://matrix.to/#/#openplanetnews:matrix.org" target="blank"><img src="img/social/riot.png" width="40px" height="40px" title="Enable notifications for our updates" alt="Riot.im" class="round"></a>
<a href="https://github.com/usvformat/" target="blank"><img src="img/social/github.svg" width="40px" height="40px" title="See first the news and improve USV in GitHub" alt="GitHub"></a><!-- <a href="https://facebook.com/" target="blank"><img src="img/social/facebook.svg" width="40px" height="40px" title="Like us and receive latest news feed about FrameworkJS progress and other development tools" alt="Facebook"></a>--><!--<a href="https://twitter.com/" target="blank"><img src="img/social/twitter.svg" width="40px" height="40px" title="Follow us and receive latest news feed about FrameworkJS progress and other development tools" alt="Twitter"></a>--><!--<a href="https://.deviantart.com" target="blank"><img src="img/social/deviantart.svg" width="40px" height="40px" title="Follow us and receive latest backgrounds, designs and apps" alt="Deviantart"></a>--></div>
<div class="social-buttons"></div>
<copyright><center>(c) 2017-2019 Universal Smart Video (.USV format) by <a href="https://openplanetinitiative.github.io/" target="blank">Open Planet Initiative</a>.</center></copyright>
</footer>
</div>
<clearnet><script id="dsq-count-scr" src="//usvformat.disqus.com/count.js" async></script></clearnet>
</div>
<!-- <script type="text/javascript" src="plugins/UmbrellaJS/umbrella.min.js"></script>
<script type="text/javascript" src="plugins/VueJS/vue.js"></script>
<script src="https://unpkg.com/vue-material@beta"></script>
<script>
Vue.use(VueMaterial.default)
new Vue({
el: '#app'
})
</script>-->
</body>
</html>