You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.9 KiB
Markdown

# Dziurkacz
Zestaw narzędzi pomagający wyciąć z pliku wideo te same fragmenty, które zostały wycięte z pliku audio.
## Wymagania
- ffmpeg,
- Audacity,
- zx (https://github.com/google/zx)
## Instalacja
### Macro do Audacity
Przenieś makro `cut and label.txt` z tego repo do katalogu `~/.audacity-data/Macros` i uruchom ponownie Audacity.
Pojawi się nowa opcja w makrach (Tools > Apply Macro > Cut and
Label). Uruchomienie tego makra spowoduje usunięcie zaznaczonego fragmentu i
stworzenie nowej labelki, w której są metadane o lokalizacji i czasie trwania
tego, co było właśnie usunięte.
W ustawieniach Audacity można podpiąć sobie to makro pod np. klawisz `Del` lub `Ctrl+D`.
## Używanie
**!! Uwaga! Aktualnie skrypt psuje się przy tworzeniu więcej niż 100 cięć. Jest
to spowodowane [dziwnymi limitami w
API](https://forum.audacityteam.org/viewtopic.php?f=39&t=120396). Docelowo
będziemy musieli trzymać wszystkie cięcia w jednej labelce, a nie każde w
osobnej.**. Póki co po utworzeniu 100tnej labelki wyświetli się
błąd. Wyeksportuj labelki do pliku txt, usuń wszystkie labelki i następnie
wyeksportuj kolejne 100 do osobnego pliku, i tak do skutku. Następnie wykonaj
skrypt do cięcia filmików kilka razy, dla każdego eksportu labelek osobno.
1. Wyciągnij audio z pliku wideo, który chcesz przyciąć:
```
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
```
2. Otwórz plik dźwiękowy z video w Audacity i usuwaj fragmenty za pomocą makra opisanego powyżej.
3. Wyeksportuj wszystkie labelki do pliku tekstowego (export -> labels)
4. Uruchom `zx --quiet dziurkacz.mjs /ścieżka/do/pliku/video.mp4 /ścieżka/do/pliku/z/wyeskportowanymi/labelkami.txt`
Plik wynikowy znajdziesz w /tmp/dziurkacz/working.mp4
## Nyquist/Audacity API reference:
- https://manual.audacityteam.org/man/nyquist_macros.html
- https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference
- https://manual.audacityteam.org/man/scripting_reference.html