Added patch to optimize WebM files
This commit is contained in:
parent
9cc4cbed03
commit
3eda84067d
90
patches/optimize-all-webm-files/optimize-all-webm-files.go
Normal file
90
patches/optimize-all-webm-files/optimize-all-webm-files.go
Normal file
@ -0,0 +1,90 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/animenotifier/arn"
|
||||
"github.com/fatih/color"
|
||||
)
|
||||
|
||||
func main() {
|
||||
color.Yellow("Optimizing all webm files in notify.moe AMV directory for fast streaming & seeking")
|
||||
color.Yellow("DO NOT RUN THIS COMMAND MULTIPLE TIMES")
|
||||
defer color.Green("Finished")
|
||||
|
||||
readFiles(path.Join(arn.Root, "videos", "amvs"), mkclean)
|
||||
}
|
||||
|
||||
// Optimize a webm file
|
||||
func mkclean(file string) error {
|
||||
fmt.Println(file)
|
||||
optimizedFile := file + ".optimized"
|
||||
|
||||
// Run mkclean
|
||||
cmd := exec.Command(
|
||||
"mkclean",
|
||||
"--doctype", "4",
|
||||
"--keep-cues",
|
||||
"--optimize",
|
||||
file,
|
||||
optimizedFile,
|
||||
)
|
||||
|
||||
// View mkclean output in terminal
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdin = os.Stdin
|
||||
|
||||
err := cmd.Start()
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = cmd.Wait()
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Now delete the original file and replace it with the optimized file
|
||||
err = os.Remove(file)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return os.Rename(optimizedFile, file)
|
||||
}
|
||||
|
||||
// Read files in a given directory and apply a function on them
|
||||
func readFiles(root string, onFile func(string) error) {
|
||||
filepath.Walk(root, func(name string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
color.Red(err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
if info.IsDir() {
|
||||
return nil
|
||||
}
|
||||
|
||||
if !strings.HasSuffix(name, ".webm") {
|
||||
return nil
|
||||
}
|
||||
|
||||
err = onFile(name)
|
||||
|
||||
if err != nil {
|
||||
color.Red(err.Error())
|
||||
}
|
||||
|
||||
// Always continue traversing the directory
|
||||
return nil
|
||||
})
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0ac6798a2fe44352cd2518dacb952d2ff6c5ee718a8d9c989d49e5a8590164e3
|
||||
size 2562360
|
||||
oid sha256:36eae9e8c891220ed57588460b898c8ff0d3dc30f64f4b893bebb5cec6131fc3
|
||||
size 2562140
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d963bd6500dadaf7a791e2df43ac4d6390ef178bab787591fd19a6219990a5c1
|
||||
size 197393
|
||||
oid sha256:e38e4681ea4d00623abd350d0597d53803ca9c6e8ddc0db82bb3dde2bfae4633
|
||||
size 195652
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6d83b77da8cfacaf02015354be020f7bc69dccf5dd901cf64d6d76a00f119b31
|
||||
size 3583207
|
||||
oid sha256:ea164221e6981f53d2c536c297df83d37a281585f98b2457a5ef803e1f8c601d
|
||||
size 3583093
|
||||
|
Loading…
Reference in New Issue
Block a user