Compare commits
280 Commits
v2017-04-0
...
v2018-04-0
Author | SHA1 | Date | |
---|---|---|---|
|
b2d5fcadf3 | ||
|
05395f4670 | ||
|
078d20824c | ||
|
44c8661e96 | ||
|
13bc9bef10 | ||
|
585e0e1f18 | ||
|
1ef6c3305b | ||
|
9c4da4102a | ||
|
c47a7a534f | ||
|
4d8fdc9f4e | ||
|
ae590706b0 | ||
|
e84f0a9fb6 | ||
|
e2850d38c0 | ||
|
8927478efb | ||
|
3c815b1f3b | ||
|
58aa0549ff | ||
|
4a83b45e7e | ||
|
f6b44c56ce | ||
|
8149aa163c | ||
|
94f935198f | ||
|
c04c9ff12f | ||
|
64787edd4e | ||
|
f995e8b483 | ||
|
dea85d1e47 | ||
|
e9fd3fd002 | ||
|
debc510205 | ||
|
32260c405f | ||
|
d142564f36 | ||
|
d41674a267 | ||
|
99450e61de | ||
|
1fec9b21c8 | ||
|
42189e5b94 | ||
|
929f92a52a | ||
|
02e2f11718 | ||
|
10636e24e2 | ||
|
61b890d31c | ||
|
85a79d2eb5 | ||
|
b5ec56174a | ||
|
f0e0cf8ed3 | ||
|
5c1c336d77 | ||
|
d71793583e | ||
|
6705bdf41d | ||
|
25e779a59f | ||
|
ba0852a957 | ||
|
88024c040f | ||
|
3d9b9edf1c | ||
|
c0326ad7d9 | ||
|
0cb6827b39 | ||
|
0d68614c04 | ||
|
1e86b70ba4 | ||
|
ced142a215 | ||
|
bf301daa71 | ||
|
278ac2baae | ||
|
10b8e4c941 | ||
|
1d1b3e4eac | ||
|
5a3e437d76 | ||
|
75a7aa1299 | ||
|
cf13529485 | ||
|
7c03ae2f80 | ||
|
affae48547 | ||
|
11ab1ae731 | ||
|
6b324152ac | ||
|
edaa0a3443 | ||
|
133f81db8e | ||
|
634f72213b | ||
|
94049d2338 | ||
|
46356c3b98 | ||
|
53d3cf8a74 | ||
|
46ffb01181 | ||
|
fe937d7e4a | ||
|
2cc48104b1 | ||
|
7e7942149e | ||
|
35a217c20b | ||
|
ac0697f1c4 | ||
|
44ee05bcaf | ||
|
2e3c0b861b | ||
|
f34858d644 | ||
|
c18a193973 | ||
|
8cce1275a8 | ||
|
fa08a2dbe8 | ||
|
09e637e6c4 | ||
|
5cb449afcc | ||
|
b0f2b62767 | ||
|
48a51a6f6a | ||
|
c552ffe699 | ||
|
f4850a6010 | ||
|
0bddb123e1 | ||
|
66139ce781 | ||
|
921b75bb2e | ||
|
1e705b4914 | ||
|
cf8756ced7 | ||
|
c6a579a0bf | ||
|
494993d4c2 | ||
|
a472a09597 | ||
|
05460bde51 | ||
|
0c32e03f3a | ||
|
1ac02df52a | ||
|
24b8c5ac35 | ||
|
9fceb27952 | ||
|
1e9629051f | ||
|
b5e95143ca | ||
|
0a2e1ca63a | ||
|
21a019612c | ||
|
80ba7cfaa6 | ||
|
132a00f9e7 | ||
|
d73ae6a382 | ||
|
f427a05c89 | ||
|
3555a692dc | ||
|
11bf8d4de2 | ||
|
4ccf83b953 | ||
|
f6be6aa37e | ||
|
04432d0323 | ||
|
ea323d4b01 | ||
|
082f9a1175 | ||
|
04776428c8 | ||
|
b1f7f5cad4 | ||
|
6d41096dd5 | ||
|
77c31a7c5c | ||
|
0c9086d70d | ||
|
2b6dfac5b0 | ||
|
ba21f8b88d | ||
|
b483acdb6d | ||
|
d91fb336b9 | ||
|
97f62ae600 | ||
|
98d2459b79 | ||
|
719e3a73f5 | ||
|
439f1933da | ||
|
0f52cde91a | ||
|
8a14c6e5fb | ||
|
8c04a58949 | ||
|
6e93313528 | ||
|
b7bc7218b8 | ||
|
7ec21fb6d2 | ||
|
1e2b2dd18f | ||
|
9d4e18e6ef | ||
|
61681c8dd3 | ||
|
71e68b5e2e | ||
|
872eec2aa7 | ||
|
863f70054d | ||
|
16c8d68e39 | ||
|
08593bb221 | ||
|
516a78d397 | ||
|
89ea7a28bd | ||
|
763e9c594f | ||
|
fd7528a6bd | ||
|
efd9e55b66 | ||
|
da94557324 | ||
|
f5887473f3 | ||
|
17ea63f7b9 | ||
|
d7db07bcab | ||
|
e92a1cf713 | ||
|
96903f018c | ||
|
fcc95ce518 | ||
|
8c349b8282 | ||
|
93627e0da2 | ||
|
593bb63e23 | ||
|
3a58b6ae82 | ||
|
11848054a3 | ||
|
c0e9a05e1d | ||
|
7cbdd6a074 | ||
|
fa1cda441e | ||
|
7d07c3818a | ||
|
3374812782 | ||
|
9c871d760a | ||
|
22fa09470b | ||
|
9bae51d6a4 | ||
|
b598ed1040 | ||
|
23148d4721 | ||
|
df422912d6 | ||
|
e5f6f5cf2d | ||
|
96c382943b | ||
|
ef6e5d07dc | ||
|
bf260c2ee2 | ||
|
7f1a765dd8 | ||
|
6c85518288 | ||
|
63abcd36d0 | ||
|
905b75547b | ||
|
7aa124c3d1 | ||
|
50185eb04e | ||
|
975766188f | ||
|
fd1d596f50 | ||
|
18a80c10f1 | ||
|
c6f7593d65 | ||
|
e6962b3ca4 | ||
|
0ba25be082 | ||
|
e4611d8b6b | ||
|
d609a9b943 | ||
|
d132e86f1d | ||
|
e1e1060904 | ||
|
8b5fa8aa6a | ||
|
7bd05a8163 | ||
|
126fb1d284 | ||
|
9799316c19 | ||
|
6e4ed74841 | ||
|
0a6204264c | ||
|
c835746c24 | ||
|
86e53b92c8 | ||
|
41423e0917 | ||
|
9a0875b692 | ||
|
0473e85448 | ||
|
b57349a3ec | ||
|
9f3b56305c | ||
|
5593b86ab7 | ||
|
3544828fb1 | ||
|
c8691285cc | ||
|
e4a660967b | ||
|
86138a55e1 | ||
|
4c14af3209 | ||
|
8d18077af5 | ||
|
8871868eda | ||
|
e1fb86ec94 | ||
|
7fe503d324 | ||
|
513631c80b | ||
|
22ff2368ad | ||
|
c81827d98f | ||
|
19d249a09b | ||
|
04abe26b53 | ||
|
ab3a8b25cf | ||
|
40e8f8c73c | ||
|
129540fbfc | ||
|
8578f01e1c | ||
|
0158a85a4b | ||
|
cc724200d1 | ||
|
0c03f57df6 | ||
|
659e920e0b | ||
|
2037ec922f | ||
|
c745152f8e | ||
|
e12bbb0c6d | ||
|
2c0e555dc1 | ||
|
ed81a16458 | ||
|
172657b1bb | ||
|
7af1a3de2c | ||
|
3f76abc053 | ||
|
e3d11b3e7c | ||
|
dbe9e1a049 | ||
|
0fe609a683 | ||
|
704a87f22c | ||
|
b1a5f14e8c | ||
|
55b34452f7 | ||
|
18e2c17ab4 | ||
|
e4309d6664 | ||
|
750810d392 | ||
|
b2a04d138f | ||
|
b53f6c9984 | ||
|
64a362314c | ||
|
2a71179776 | ||
|
77e346c067 | ||
|
b995fb05c5 | ||
|
d30741e378 | ||
|
e3b01e2aa8 | ||
|
750a763157 | ||
|
0a6e5a4a7a | ||
|
54a8ab6057 | ||
|
e762c7dc42 | ||
|
cb7f001444 | ||
|
89039f55b3 | ||
|
59e6c6d879 | ||
|
195bc5446e | ||
|
a1cc5a4428 | ||
|
58663a869f | ||
|
05d16367f0 | ||
|
9477bcfe0a | ||
|
ad439d3b78 | ||
|
736b01e426 | ||
|
57166fe61d | ||
|
ec26d2038a | ||
|
321d998b5a | ||
|
009670eed1 | ||
|
d3a941a725 | ||
|
d334d7b4de | ||
|
d08cf349f6 | ||
|
b5b06021b0 | ||
|
e0ceeb0d73 | ||
|
dc47dbc618 | ||
|
28ae979652 | ||
|
0e2a2c2bfe | ||
|
388b107a3f | ||
|
117ebf506d | ||
|
9356f9af93 | ||
|
4d2d5c7c81 |
7
css/bootstrap.min.css
vendored
253
css/css.css
@@ -1,17 +1,146 @@
|
||||
html, body {
|
||||
line-height: 1.5;
|
||||
font-size: 16px;
|
||||
color: #888888;
|
||||
background-color: #060606;
|
||||
margin: 0;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.grid {
|
||||
display: grid;
|
||||
align-content: center;
|
||||
grid-template-areas:
|
||||
"header"
|
||||
"sidebar"
|
||||
"content"
|
||||
"footer";
|
||||
}
|
||||
|
||||
.header {
|
||||
grid-area: header;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.content {
|
||||
grid-area: content;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
grid-area: sidebar;
|
||||
}
|
||||
|
||||
.footer {
|
||||
grid-area: footer;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 999px) {
|
||||
.grid {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"header"
|
||||
"sidebar"
|
||||
"content"
|
||||
"footer";
|
||||
}
|
||||
code {
|
||||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1000px) {
|
||||
.grid {
|
||||
grid-gap: 1rem;
|
||||
grid-template-columns: 25% auto;
|
||||
grid-template-areas:
|
||||
"header header"
|
||||
"sidebar content"
|
||||
"footer footer";
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1500px) {
|
||||
.grid {
|
||||
max-width: 70%;
|
||||
margin: 0 auto;
|
||||
grid-template-areas:
|
||||
"header header"
|
||||
"sidebar content"
|
||||
"footer footer";
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: #91cf91;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #5cb85c;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #449d44;
|
||||
}
|
||||
|
||||
.license img {
|
||||
max-width: 10em;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
letter-spacing: 0.1em;
|
||||
font-size: 7vw;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
margin: 5px 8px 8px 8px;
|
||||
}
|
||||
|
||||
.heading {
|
||||
font-size: 2em;
|
||||
margin: 6px 0px 12px 0px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.intro-lead {
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
code {
|
||||
word-break: break-all;
|
||||
padding: 2px 4px;
|
||||
color: #c7254e;
|
||||
background-color: #f9f2f4;
|
||||
border-radius: 4px;
|
||||
word-wrap: break-word;
|
||||
max-width: 800px;
|
||||
white-space: normal;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
dd {
|
||||
padding-left:24px;
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
white-space: normal;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
img {
|
||||
@@ -22,13 +151,17 @@ img {
|
||||
}
|
||||
|
||||
.sample-image {
|
||||
margin: 0 auto;
|
||||
margin-bottom: 18px;
|
||||
max-width: 500px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
letter-spacing:8px;
|
||||
font-size:86px;
|
||||
line-height:120px;
|
||||
.sample-image-small {
|
||||
margin: 0 auto;
|
||||
margin-bottom: 18px;
|
||||
max-width: 250px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div {
|
||||
@@ -36,46 +169,67 @@ div {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin: 8px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
position: relative;
|
||||
padding-left: 2.5em;
|
||||
-webkit-transition-duration: 0.3s;
|
||||
transition-duration: 0.3s;
|
||||
.sidebar a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:before {
|
||||
.recipe, .contents-list {
|
||||
color: white;
|
||||
background-color: #383838;
|
||||
padding: 14px;
|
||||
font-family: "Montserrat";
|
||||
letter-spacing: 0.05em;
|
||||
border: 1px solid black;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-left: 2.8em;
|
||||
transition: all .5s ease-out;
|
||||
}
|
||||
|
||||
.contents-list {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
nav .heading {
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.recipe {
|
||||
display: block;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.recipe:hover, .contents-list:hover {
|
||||
background-color: #449d44;
|
||||
}
|
||||
|
||||
.recipe:before {
|
||||
content: "💫";
|
||||
}
|
||||
|
||||
.contents-list:before {
|
||||
content: "📼";
|
||||
}
|
||||
|
||||
.recipe:before, .contents-list:before {
|
||||
position: absolute;
|
||||
left: 1em;
|
||||
padding: 0 1px;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-transition-duration: 0.3s;
|
||||
transition-duration: 0.3s;
|
||||
-webkit-transition-property: transform;
|
||||
transition-property: transform;
|
||||
-webkit-transition-timing-function: ease-out;
|
||||
transition-timing-function: ease-out;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
.btn:hover:before, .btn:focus:before, .btn:active:before {
|
||||
-webkit-transform: scale(1.3) translateZ(0);
|
||||
transform: scale(1.3) translateZ(0);
|
||||
.recipe:hover:before, .recipe:focus:before, .recipe:active:before {
|
||||
transform: scale(1.5) translateX(0.1em);
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
.contents-list:hover:before, .contents-list:focus:before, .contents-list:active:before {
|
||||
transform: scale(1.8) translateX(0.3em);
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
.codeblock {
|
||||
font-family: monospace
|
||||
padding: 2px 4px;
|
||||
font-size: 90%;
|
||||
color: #c7254e;
|
||||
background-color: #f9f2f4;
|
||||
border-radius: 4px;
|
||||
@@ -89,14 +243,29 @@ div {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 576px) {
|
||||
img {
|
||||
max-width: 60%;
|
||||
}
|
||||
.well {
|
||||
padding: 1em;
|
||||
margin-bottom: 0.5em;
|
||||
background-color: #151515;
|
||||
border: 1px solid #030303;
|
||||
border-radius: 8px;
|
||||
box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) {
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
.hiding {
|
||||
opacity: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
input {
|
||||
position: absolute;
|
||||
left: -999em;
|
||||
}
|
||||
|
||||
input[type=checkbox]:checked + div {
|
||||
opacity: 1;
|
||||
height: auto;
|
||||
overflow: hidden;
|
||||
transition: opacity .5s linear, height .5s linear;
|
||||
}
|
||||
|
BIN
img/16_32_abitscope.gif
Normal file
After Width: | Height: | Size: 450 KiB |
BIN
img/brng.gif
Before Width: | Height: | Size: 7.6 MiB |
BIN
img/cc.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
img/crop_example_aftercrop1.png
Normal file
After Width: | Height: | Size: 245 KiB |
BIN
img/crop_example_aftercrop2.png
Normal file
After Width: | Height: | Size: 167 KiB |
BIN
img/crop_example_aftercrop3.png
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
img/crop_example_orig.png
Normal file
After Width: | Height: | Size: 436 KiB |
BIN
img/eia608_captions.gif
Normal file
After Width: | Height: | Size: 2.1 MiB |
BIN
img/life.gif
Normal file
After Width: | Height: | Size: 574 KiB |
BIN
img/outside_broadcast_range.gif
Normal file
After Width: | Height: | Size: 2.9 MiB |
BIN
img/vhs.ico
Normal file
After Width: | Height: | Size: 15 KiB |
4148
index.html
6
js/bootstrap.min.js
vendored
33
js/js.js
@@ -1,28 +1,21 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
});
|
||||
|
||||
// open modal window if a hash is found in URL
|
||||
// open recipe window if a hash is found in URL
|
||||
if(window.location.hash) {
|
||||
$(window.location.hash).modal('show');
|
||||
// add direct link to modal window
|
||||
$(".link").empty();
|
||||
$(".link").append("<small>Link to this command: <a href="+window.location.href+">"+window.location.href+"</a></small>");
|
||||
id = window.location.hash
|
||||
console.log(id.substring(1))
|
||||
document.getElementById(id.substring(1)).checked = true;
|
||||
$('html, body').animate({ scrollTop: $(id).offset().top}, 1000);
|
||||
$(id).closest('div').find('.link').empty();
|
||||
$(id).closest('div').find('.link').append("<small>Link to this command: <a href='https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"'>https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"</a></small>");
|
||||
}
|
||||
|
||||
// add hash to URL when modal is opened
|
||||
$('span[data-toggle="modal"]').on("click", function(){
|
||||
window.location.hash = $(this).attr("data-target");
|
||||
// add direct link to modal window
|
||||
$(".link").empty();
|
||||
$(".link").append("<small>Link to this command: <a href="+window.location.href+">"+window.location.href+"</a></small>");
|
||||
});
|
||||
|
||||
// remove hash from URL when modal is closed
|
||||
$(document).on('hide.bs.modal', function (e) {
|
||||
history.pushState("", document.title, window.location.pathname);
|
||||
// add hash URL when recipe is opened
|
||||
$('label[class="recipe"]').on("click", function(){
|
||||
id = $(this).attr("for");
|
||||
window.location.hash = ('#' + id)
|
||||
$('#' + id).closest('div').find('.link').empty();
|
||||
$('#' + id).closest('div').find('.link').append("<small>Link to this command: <a href='https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"'>https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"</a></small>");
|
||||
});
|
||||
|
||||
});
|
||||
|
69
readme.md
@@ -1,37 +1,55 @@
|
||||
# [ffmprovisr](http://amiaopensource.github.io/ffmprovisr)
|
||||
|
||||
Repository of useful FFmpeg command lines for archivists! [AMIA hackday](http://wiki.curatecamp.org/index.php/Association_of_Moving_Image_Archivists_%26_Digital_Library_Federation_Hack_Day_2015) edition.
|
||||
Repository of useful FFmpeg command lines for archivists!
|
||||
|
||||
## What is this?
|
||||
|
||||
Project Objective: To facilitate better understanding of FFmpeg through collaborative sharing of useful scripts and detailed flag-level description of how each script works so archivists can copy-paste and produce their own scripts but also understand how and why they work.
|
||||
#### Project Objective
|
||||
|
||||
To facilitate better understanding of FFmpeg through collaborative sharing of useful scripts and detailed flag-level description of how each script works, so archivists can copy-paste and produce their own scripts, but also understand how and why they work.
|
||||
|
||||
## How do I see it?
|
||||
|
||||
Code stuff in the gh-pages branch (the default primary branch). Readme is right here. The site is live and lives on github pages. You can see it [here](http://amiaopensource.github.io/ffmprovisr), or you can download a [release](https://github.com/amiaopensource/ffmprovisr/releases) and use it locally.
|
||||
The code is found in the gh-pages branch (the default primary branch). Readme is right here. You can see the site live on [GitHub pages](http://amiaopensource.github.io/ffmprovisr).
|
||||
|
||||
You can also install the latest [release](https://github.com/amiaopensource/ffmprovisr/releases) on your computer with the command:
|
||||
```
|
||||
brew install amiaopensource/amiaos/ffmprovisr
|
||||
```
|
||||
and then call it locally with the command:
|
||||
```
|
||||
ffmprovisr
|
||||
```
|
||||
This works currently under macOS, Linux and the Linux subsystem on Windows. On classic Windows you can install the last [release](https://github.com/amiaopensource/ffmprovisr/releases) manually and the open `index.html` in a browser.
|
||||
|
||||
## How do I contribute?
|
||||
|
||||
You are welcome to edit the codebase yourself or just supply the information and ask it to be added to the site.
|
||||
You are welcome to edit the codebase yourself, or just supply the information and ask it to be added to the site.
|
||||
|
||||
To contribute to this project directly (and more quickly), clone this repository and create a new branch (`git checkout -b your-branch-name`) and add or modify a new block in index.html. Then submit a pull request and someone can review and integrate your code. There is a commented-out sample available at the bottom of index.html that can be used to build your own block.
|
||||
#### Edit codebase
|
||||
|
||||
If you are having trouble with the coding it yourself or with github, feel free to [submit an issue](https://github.com/amiaopensource/ffmprovisr/issues) with the kind of command you would like to see added to the site.
|
||||
To contribute to this project directly (and more quickly), clone this repository and create a new branch (`git checkout -b your-branch-name`) and add or modify a new block in `index.html`. Then [submit a pull request](https://github.com/amiaopensource/ffmprovisr/pulls) and the maintainers will review and integrate your code. There is a commented-out sample block available at the bottom of `index.html` that can be as a guideline for your command.
|
||||
|
||||
#### Make a request
|
||||
|
||||
If you are having trouble with coding it yourself or with GitHub, feel free to [submit an issue](https://github.com/amiaopensource/ffmprovisr/issues) with the kind of command you would like to see added to the site.
|
||||
|
||||
#### General help
|
||||
|
||||
If you want to help but don't have a new script to add, you can help us by testing out the scripts available, by refining or clarifying the documentation, or [creating an issue](https://github.com/amiaopensource/ffmprovisr/issues) for anything that sounds confusing and requires clarification.
|
||||
|
||||
## License
|
||||
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a><br />This <span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/InteractiveResource" rel="dct:type">work</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://amiaopensource.github.io/ffmprovisr/" property="cc:attributionName" rel="cc:attributionURL">ffmprovisr</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.<br />Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://github.com/amiaopensource/ffmprovisr" rel="dct:source">https://github.com/amiaopensource/ffmprovisr</a>.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
You can read our contributor code of conduct [here](https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/code_of_conduct.md).
|
||||
|
||||
## Maintainers
|
||||
|
||||
[Ashley Blewer](https://github.com/ablwr), [Katherine Frances Nagels](https://github.com/kfrn), [Kieran O'Leary](https://github.com/kieranjol), [Reto Kromer](https://github.com/retokromer) and [Andrew Weaver](https://github.com/privatezero)
|
||||
|
||||
## Contributors
|
||||
* Gathered using [octohatrack](https://github.com/LABHR/octohatrack)
|
||||
|
||||
GitHub Contributors:
|
||||
*GitHub Contributors*:
|
||||
ablwr (Ashley)
|
||||
dericed (Dave Rice)
|
||||
edsu (Ed Summers)
|
||||
@@ -40,39 +58,52 @@ kfrn (Katherine Frances Nagels)
|
||||
kgrons (Kathryn Gronsbell)
|
||||
kieranjol (Kieran O'Leary)
|
||||
llogan (Lou)
|
||||
pjotrek-b (Peter B.)
|
||||
privatezero (Andrew Weaver)
|
||||
retokromer (Reto Kromer)
|
||||
rfraimow
|
||||
|
||||
All Contributors:
|
||||
|
||||
*All Contributors*:
|
||||
ablwr (Ashley)
|
||||
audiovisualopen
|
||||
brainwane (Sumana Harihareswara)
|
||||
bturkus
|
||||
dericed (Dave Rice)
|
||||
edsu (Ed Summers)
|
||||
Fizz24
|
||||
jamessam (Jim)
|
||||
jamessam (Jim Sam)
|
||||
jfarbowitz (Jonathan Farbowitz)
|
||||
jronallo (Jason Ronallo)
|
||||
kellyhaydon (metacynic)
|
||||
kfrn (Katherine Frances Nagels)
|
||||
kgrons (Kathryn Gronsbell)
|
||||
kieranjol (Kieran O'Leary)
|
||||
llogan (Lou)
|
||||
mulvya
|
||||
pjotrek-b (Peter B.)
|
||||
privatezero (Andrew Weaver)
|
||||
retokromer (Reto Kromer)
|
||||
rfraimow
|
||||
richardpl (Paul B Mahol)
|
||||
todrobbins (Tod Robbins)
|
||||
|
||||
|
||||
Repo: amiaopensource/ffmprovisr
|
||||
GitHub Contributors: 11
|
||||
All Contributors: 18
|
||||
GitHub Contributors: 12
|
||||
All Contributors: 22
|
||||
|
||||
## AVHack Team:
|
||||
## AVHack Team
|
||||
|
||||
[Ashley Blewer](https://github.com/ablwr), Eddy Colloton, Rebecca Dillmeier, [Jonathan Farbowitz](https://github.com/jfarbowitz), Rebecca Fraimow, Samuel Gutterman, Kelly Haydon, [Reto Kromer](https://github.com/retokromer), Nicole Martin, [Katherine Frances Nagels](https://github.com/kfrn), [Kieran O'Leary](https://github.com/kieranjol), Catriona Schlosser, Ben Turkus
|
||||
[Association of Moving Image Archivists & Digital Library Federation Hack Day 2015](http://wiki.curatecamp.org/index.php/Association_of_Moving_Image_Archivists_%26_Digital_Library_Federation_Hack_Day_2015)
|
||||
|
||||
[Ashley Blewer](https://github.com/ablwr), [Eddy Colloton](https://github.com/eddycolloton), Rebecca Dillmeier, [Jonathan Farbowitz](https://github.com/jfarbowitz), [Rebecca Fraimow](https://github.com/rfraimow), Samuel Gutterman, [Kelly Haydon](https://github.com/kellyhaydon), [Reto Kromer](https://github.com/retokromer), Nicole Martin, [Katherine Frances Nagels](https://github.com/kfrn), [Kieran O'Leary](https://github.com/kieranjol), Catriona Schlosser, [Ben Turkus](https://github.com/bturkus)
|
||||
|
||||
## Sister projects
|
||||
|
||||
[Script Ahoy](http://dd388.github.io/crals/): Community Resource for Archivists and Librarians Scripting
|
||||
[sourcecaster](https://datapraxis.github.io/sourcecaster/): helps you use the command line to work through common challenges that come up when working with digital primary sources.
|
||||
|
||||
## License
|
||||
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png"></a><br>
|
||||
This <span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/InteractiveResource" rel="dct:type">work</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://amiaopensource.github.io/ffmprovisr/" property="cc:attributionName" rel="cc:attributionURL">ffmprovisr</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.<br>
|
||||
Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://github.com/amiaopensource/ffmprovisr" rel="dct:source">https://github.com/amiaopensource/ffmprovisr</a>.
|
||||
|
48
check_framemd5.sh → scripts/check_audio_framemd5.sh
Normal file → Executable file
@@ -1,19 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
SCRIPT=$(basename "${0}")
|
||||
VERSION='2016-12-31'
|
||||
AUTHOR='ffmprovisr'
|
||||
RED='\033[1;31m'
|
||||
BLUE='\033[1;34m'
|
||||
NC='\033[0m'
|
||||
VERSION="2018-02-10"
|
||||
AUTHOR="ffmprovisr"
|
||||
RED="\033[1;31m"
|
||||
BLUE="\033[1;34m"
|
||||
NC="\033[0m"
|
||||
|
||||
if [[ ${OSTYPE} = "cygwin" ]] || [ ! $(which diff) ]; then
|
||||
if [[ "${OSTYPE}" = "cygwin" ]] || [[ ! "$(which diff)" ]]; then
|
||||
echo -e "${RED}Error: 'diff' is not installed by default. Please install 'diffutils' from Cygwin.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
_output_prompt(){
|
||||
cat <<EOF
|
||||
Usage: ${SCRIPT} [-h] | [ -i <av_file> -m <md5_file> ]
|
||||
Usage: ${SCRIPT} -i <av_file> -m <md5_file> | -h
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
@@ -21,18 +21,16 @@ EOF
|
||||
_output_help(){
|
||||
cat <<EOF
|
||||
Syntax:
|
||||
${SCRIPT}
|
||||
Prompts a short help message.
|
||||
${SCRIPT} -h
|
||||
This help.
|
||||
${SCRIPT} -i <av_file> -m <md5_file>
|
||||
Pass to the script the audio-visual file and the corresponding MD5
|
||||
file to check.
|
||||
${SCRIPT} -h
|
||||
This help.
|
||||
Dependency:
|
||||
ffmpeg
|
||||
About:
|
||||
Version: ${VERSION}
|
||||
Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/check_framemd5.sh
|
||||
Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/scripts/check_audio_framemd5.sh
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
@@ -40,11 +38,11 @@ EOF
|
||||
unset input_file
|
||||
unset input_hash
|
||||
|
||||
while getopts ":hi:m:" opt; do
|
||||
while getopts ":i:m:h" opt; do
|
||||
case "${opt}" in
|
||||
i) input_file=${OPTARG} ;;
|
||||
m) input_hash=${OPTARG} ;;
|
||||
h) _output_help ;;
|
||||
i) input_file=$OPTARG ;;
|
||||
m) input_hash=$OPTARG ;;
|
||||
:) echo -e "${RED}Error: option -${OPTARG} requires an argument${NC}" ; _output_prompt ;;
|
||||
*) echo -e "${RED}Error: bad option -${OPTARG}${NC}" ; _output_prompt ;;
|
||||
esac
|
||||
@@ -54,21 +52,23 @@ done
|
||||
echo -e "${BLUE}Please wait...${NC}"
|
||||
unset md5_tmp
|
||||
if [[ $OSTYPE = "cygwin" ]]; then
|
||||
md5_tmp=""${USERPROFILE}/$(basename ${input_hash}).tmp""
|
||||
md5_tmp="${USERPROFILE}/$(basename "${input_hash}").tmp"
|
||||
else
|
||||
md5_tmp="${HOME}/$(basename ${input_hash}).tmp"
|
||||
md5_tmp="${HOME}/$(basename "${input_hash}").tmp"
|
||||
fi
|
||||
$(ffmpeg -i ${input_file} -loglevel 0 -f framemd5 -an ${md5_tmp})
|
||||
# Find audio frame size for hash calculation
|
||||
unset sample_rate
|
||||
sample_rate=$(grep -v '^#' "${input_hash}" | head -n 1 | tr -d ' ' | cut -d',' -f4)
|
||||
ffmpeg -i "${input_file}" -loglevel 0 -af "asetnsamples=n='$sample_rate'" -f framemd5 -vn "${md5_tmp}"
|
||||
[[ ! -f ${md5_tmp} ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; }
|
||||
unset old_file
|
||||
unset tmp_file
|
||||
old_file=$(grep -v '^#' ${input_hash})
|
||||
tmp_file=$(grep -v '^#' ${md5_tmp})
|
||||
old_file=$(grep -v '^#' "${input_hash}")
|
||||
tmp_file=$(grep -v '^#' "${md5_tmp}")
|
||||
if [[ "${old_file}" = "${tmp_file}" ]]; then
|
||||
echo -e "${BLUE}'$(basename ${input_file})' matches '$(basename ${input_hash})'${NC}"
|
||||
rm "${md5_tmp}"
|
||||
echo -e "${BLUE}'$(basename "${input_file}")' matches '$(basename "${input_hash}")'${NC}"
|
||||
else
|
||||
echo -e "${RED}The following differences were detected between '$(basename ${input_file})' and '$(basename ${input_hash})':${NC}"
|
||||
echo -e "${RED}The following differences were detected between '$(basename "${input_file}")' and '$(basename "${input_hash}")':${NC}"
|
||||
diff "${input_hash}" "${md5_tmp}"
|
||||
rm "${md5_tmp}"
|
||||
fi
|
||||
rm "${md5_tmp}"
|
71
scripts/check_video_framemd5.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
SCRIPT=$(basename "${0}")
|
||||
VERSION="2018-02-10"
|
||||
AUTHOR="ffmprovisr"
|
||||
RED="\033[1;31m"
|
||||
BLUE="\033[1;34m"
|
||||
NC="\033[0m"
|
||||
|
||||
if [[ "${OSTYPE}" = "cygwin" ]] || [[ ! "$(which diff)" ]]; then
|
||||
echo -e "${RED}Error: 'diff' is not installed by default. Please install 'diffutils' from Cygwin.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
_output_prompt(){
|
||||
cat <<EOF
|
||||
Usage: ${SCRIPT} -i <av_file> -m <md5_file> | -h
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
_output_help(){
|
||||
cat <<EOF
|
||||
Syntax:
|
||||
${SCRIPT} -i <av_file> -m <md5_file>
|
||||
Pass to the script the audio-visual file and the corresponding MD5
|
||||
file to check.
|
||||
${SCRIPT} -h
|
||||
This help.
|
||||
Dependency:
|
||||
ffmpeg
|
||||
About:
|
||||
Version: ${VERSION}
|
||||
Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/scripts/check_video_framemd5.sh
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
unset input_file
|
||||
unset input_hash
|
||||
|
||||
while getopts ":i:m:h" opt; do
|
||||
case "${opt}" in
|
||||
i) input_file=${OPTARG} ;;
|
||||
m) input_hash=${OPTARG} ;;
|
||||
h) _output_help ;;
|
||||
:) echo -e "${RED}Error: option -${OPTARG} requires an argument${NC}" ; _output_prompt ;;
|
||||
*) echo -e "${RED}Error: bad option -${OPTARG}${NC}" ; _output_prompt ;;
|
||||
esac
|
||||
done
|
||||
|
||||
[[ -z "${#}" || ! ${input_file} || ! ${input_hash} ]] && _output_prompt
|
||||
echo -e "${BLUE}Please wait...${NC}"
|
||||
unset md5_tmp
|
||||
if [[ "${OSTYPE}" = "cygwin" ]]; then
|
||||
md5_tmp="${USERPROFILE}/$(basename "${input_hash}").tmp"
|
||||
else
|
||||
md5_tmp="${HOME}/$(basename "${input_hash}").tmp"
|
||||
fi
|
||||
ffmpeg -i "${input_file}" -loglevel 0 -f framemd5 -an "${md5_tmp}"
|
||||
[[ ! -f "${md5_tmp}" ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; }
|
||||
unset old_file
|
||||
unset tmp_file
|
||||
old_file=$(grep -v '^#' "${input_hash}")
|
||||
tmp_file=$(grep -v '^#' "${md5_tmp}")
|
||||
if [[ "${old_file}" = "${tmp_file}" ]]; then
|
||||
echo -e "${BLUE}'$(basename "${input_file}")' matches '$(basename "${input_hash}")'${NC}"
|
||||
else
|
||||
echo -e "${RED}The following differences were detected between '$(basename "${input_file}")' and '$(basename "${input_hash}")':${NC}"
|
||||
diff "${input_hash}" "${md5_tmp}"
|
||||
fi
|
||||
rm "${md5_tmp}"
|
27
scripts/ffmprovisr
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This allows to open the online version of the ffmprovisr, when the computer is
|
||||
# connected to the Web, and the local version otherwise.
|
||||
|
||||
if [[ "$(uname -s)" = "Darwin" ]] ; then
|
||||
default_browser=$(plutil -convert json ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist -r -o - | grep https -b1 | tail -n1 | cut -d'"' -f4)
|
||||
if ping -c 1 amiaopensource.github.io >/dev/null 2>&1 ; then
|
||||
ffmprovisr_path='https://amiaopensource.github.io/ffmprovisr/'
|
||||
else
|
||||
ffmprovisr_path=$(find /usr/local/Cellar/ffmprovisr -iname 'index.html' | sort -M | tail -n1)
|
||||
fi
|
||||
if [[ -n "${default_browser}" ]] ; then
|
||||
open -b "${default_browser}" "${ffmprovisr_path}"
|
||||
else
|
||||
open "${ffmprovisr_path}"
|
||||
fi
|
||||
elif [[ "$(uname -s)" = "Linux" ]] ; then
|
||||
if ping -c 1 amiaopensource.github.io >/dev/null 2>&1 ; then
|
||||
ffmprovisr_path='https://amiaopensource.github.io/ffmprovisr/'
|
||||
else
|
||||
ffmprovisr_path=$(find ~/.linuxbrew/Cellar/ffmprovisr -iname 'index.html' | sort -M | tail -n1)
|
||||
fi
|
||||
xdg-open "${ffmprovisr_path}"
|
||||
else
|
||||
echo "Please locate the 'ffmprovisr' folder, and open the 'index.html' file in a browser."
|
||||
fi
|