Interfejs wiersza poleceń

Włącz OpenShot do swojego przepływu pracy w wierszu poleceń. Importuj materiały, przycinaj i układaj klipy, stosuj efekty, animuj właściwości za pomocą kluczowych klatek i eksportuj filmy z terminala. Użyj kilku poleceń, aby zautomatyzować powtarzalne edycje, napisać skrypt dla powtarzającego się projektu lub pozwól agentowi AI pomóc w montażu i dopracowaniu filmu.

Wiersz poleceń działa z tymi samymi projektami co edytor. Możesz kontrolować otwarty edytor i przeglądać zmiany na bieżąco lub pracować w sesji bez interfejsu graficznego bez otwierania okna. Sesja utrzymuje projekt otwarty między poleceniami, włączając w to edycje, historię cofania i zadania eksportu. Zapisz go jako projekt .osp, gdy chcesz kontynuować edycję później.

Pierwsze kroki

Użyj zainstalowanego pliku wykonywalnego OpenShot z dopiskiem --cli. Zacznij od intro dla krótkiego przewodnika po sesjach, edycji, animacji i zapisywaniu, lub help dla przeglądu poleceń. Te polecenia nie wymagają aktywnej sesji. Poniższe przykłady wymagają wersji OpenShot z obsługą edycji w wierszu poleceń.

Linux AppImage

Z katalogu zawierającego pobrany plik AppImage:

./OpenShot.AppImage --cli intro
./OpenShot.AppImage --cli help

Zamień OpenShot.AppImage na nazwę pobranego pliku. Jeśli AppImageLauncher wyświetla okna integracji z pulpitem, ustaw APPIMAGELAUNCHER_DISABLE=1 przed uruchomieniem polecenia:

APPIMAGELAUNCHER_DISABLE=1 ./OpenShot.AppImage --cli intro

Dla skryptów lub powtarzających się poleceń ustaw to raz w bieżącej powłoce:

export APPIMAGELAUNCHER_DISABLE=1
./OpenShot.AppImage --cli session start

Zmienna musi być ustawiona przed uruchomieniem AppImage: AppImageLauncher może ją przechwycić zanim OpenShot otrzyma --cli. Względne ścieżki do mediów i pliki @batch.json są rozwiązywane względem katalogu roboczego. Zachowaj plik AppImage dostępnym podczas działania sesji lub eksportów.

Linux Snap

Dla OpenShot Snap użyj:

snap run openshot-qt --cli intro
snap run openshot-qt --cli help
snap run openshot-qt --cli session start

Uprawnienia plików Snap dotyczą również edycji w wierszu poleceń. Przechowuj media, projekty i eksporty w lokalizacjach dostępnych dla Snap, takich jak folder domowy. Aby umożliwić dostęp do zewnętrznych dysków, połącz uprawnienie removable-media:

sudo snap connect openshot-qt:removable-media

Windows

Ważne

Używaj openshot-qt-cmd.exe do edycji w wierszu poleceń na Windows. Ten plik wykonywalny konsoli wyświetla wyniki poleceń, pomoc i błędy w terminalu. Plik wykonywalny pulpitu, openshot-qt.exe, nie wyświetla standardowego wyjścia w interaktywnym terminalu, pozostawiając polecenia bez widocznej informacji zwrotnej i utrudniając korzystanie z CLI.

W PowerShell, z katalogu instalacyjnego OpenShot:

& .\openshot-qt-cmd.exe --cli intro
& .\openshot-qt-cmd.exe --cli help
& .\openshot-qt-cmd.exe --cli session start

Jeśli jesteś w innym katalogu, użyj pełnej ścieżki do openshot-qt-cmd.exe. Zachowaj --cli po nazwie pliku wykonywalnego.

macOS

Dla instalacji w folderze Applications:

"/Applications/OpenShot Video Editor.app/Contents/MacOS/openshot-qt" --cli intro
"/Applications/OpenShot Video Editor.app/Contents/MacOS/openshot-qt" --cli help

Znajdowanie poleceń

W całym przewodniku openshot-cli to skrót dla polecenia Twojej instalacji, np. snap run openshot-qt --cli lub ./OpenShot.AppImage --cli. Niektóre instalacje udostępniają też bezpośrednio polecenie openshot-cli. Przy uruchamianiu ze źródeł użyj python3 src/launch.py --cli w środowisku Pythona OpenShot.

Samo --cli, --cli help i --cli --help pokazują ten sam przegląd. Pomoc staje się bardziej szczegółowa podczas nawigacji po poleceniach:

openshot-cli clip help
openshot-cli clip keyframe help
openshot-cli clip keyframe set help
openshot-cli edit help
openshot-cli text help
openshot-cli effects list
openshot-cli effects audiovisualization help
openshot-cli effects audiovisualization help --property background

Pomoc grupowa wyjaśnia przepływy pracy na przykładach; pomoc operacji opisuje argumenty i zachowanie. --help jest równoważne z dodaniem help na końcu. Wszystkie polecenia pomocy działają bez sesji edycyjnej.

effects list pokazuje dostępne efekty z krótkimi opisami. Pomoc efektu wyjaśnia jego właściwości, wartości domyślne, wybory i zakresy. effects instances wyświetla efekty już przypisane do klipów wraz z identyfikatorami nadrzędnych klipów. Nazwy klas, nazwy wyświetlane i aliasy z podkreśleniami identyfikują ten sam efekt.

Praca ze skryptami i agentami AI

Agenci AI do kodowania, tacy jak Codex i Claude Code, mogą używać CLI do przeglądania i edycji projektów OpenShot za pomocą poleceń terminala. Podaj agentowi ścieżkę do pliku wykonywalnego OpenShot, media lub projekt do pracy oraz oczekiwany rezultat: czas trwania, wymiary, styl animacji i miejsce zapisu. Poproś, aby przed rozpoczęciem przeczytał --cli intro. Te same polecenia działają, gdy wpisujesz je samodzielnie lub uruchamiasz ze skryptu.

Zacznij od intro, a następnie korzystaj z pomocy specyficznej dla poleceń według potrzeby. Przydatny przepływ pracy to wybranie sesji, przegląd projektu, wprowadzenie niewielkich zmian, sprawdzenie wyniku i zapis. Polecenia zwracają ustrukturyzowany JSON, dzięki czemu skrypty i agenci mogą bezpośrednio używać identyfikatorów obiektów i wyników zamiast interpretować wyjście ekranu.

  • Sprawdź przed edycją. Używaj zwróconych identyfikatorów i informacji o właściwościach zamiast zgadywać nazwy, numery ścieżek czy czas. Wybierz sesję wyraźnie, gdy otwartych jest więcej niż jeden projekt.

  • Grupuj powtarzające się edycje. Użyj edit apply dla sekwencji zmian lub edit bulk, aby zastosować szablon do wybranych klipów. Zweryfikuj za pomocą --dry-run przed zastosowaniem partii.

  • Sprawdź animację. Wybierz przestrzeń współrzędnych, zacznij od kilku kluczowych klatek i użyj presetów wygładzania dla znanego ruchu. keyframe preview próbuje krzywą, abyś mógł zauważyć pauzy lub skoki przed eksportem. Przejrzyj również wyrenderowany ruch; sam arkusz kontaktowy nie pokaże, jak animacja się prezentuje.

  • Zapisz i śledź eksporty. Zapisz projekt jawnie i sprawdź status zadania eksportu, zanim uznasz wynik za ukończony. Jeśli żądanie przekroczy limit czasu, sprawdź jego status przed powtórzeniem edycji.

Poniższe sekcje wyjaśniają te przepływy pracy i ich konwencje czasowe.

Sesje i wyniki

Uruchamianie lub znajdowanie sesji

Uruchom jedną sesję bez interfejsu (bez okna edytora):

openshot-cli session start

Aby otworzyć istniejący projekt podczas uruchamiania, dodaj --project "/ścieżka/projekt.osp". Poprawna odpowiedź JSON zawiera result.session_id. Skopiuj tę wartość. Jeśli OpenShot jest już uruchomiony lub zapomniałeś ID, znajdź dostępne sesje za pomocą:

openshot-cli session list

Wybierz sesję dla projektu, który zamierzasz edytować. Nie musisz uruchamiać nowej sesji dla każdego polecenia.

Wybieranie sesji

Wskazówka

Ustaw OPENSHOT_SESSION raz, a następnie uruchamiaj polecenia normalnie. Twój terminal zapamiętuje wybraną sesję, więc nie musisz podawać --session przy każdym poleceniu. Skorzystaj z poniższego przykładu dla PowerShell lub Bash.

Zamień SESSION_ID poniżej na session_id zwrócony przez session start lub session list.

Windows PowerShell:

$env:OPENSHOT_SESSION = "SESSION_ID"
& .\openshot-qt-cmd.exe --cli timeline view
& .\openshot-qt-cmd.exe --cli export start "C:\path\test.mp4" --wait

Linux Bash:

export OPENSHOT_SESSION="SESSION_ID"
./OpenShot.AppImage --cli timeline view
./OpenShot.AppImage --cli export start "/path/test.mp4" --wait

Na macOS użyj tej samej składni export. Dla poleceń macOS lub Snap podstaw plik wykonywalny swojej instalacji z sekcji Rozpoczęcie pracy. Wybór obowiązuje dla tego terminala i poleceń uruchamianych z niego. Ustaw go ponownie w nowym terminalu lub zaktualizuj przy przełączaniu na inną sesję.

Pozostałe przykłady edycji i eksportu zakładają, że OPENSHOT_SESSION jest ustawione. Następna podsekcja pokazuje, jak automatycznie przechwycić ID dla skryptów.

Aby skierować polecenie do innej sesji tylko dla jednego polecenia, użyj --session. Nadpisuje to OPENSHOT_SESSION bez zmiany wyboru w terminalu:

openshot-cli --session OTHER_SESSION_ID project get

W przypadku pakietowego pliku wykonywalnego umieść to nadpisanie po --cli i przed grupą poleceń: --cli --session OTHER_SESSION_ID project get.

Automatyczny wybór działa tylko wtedy, gdy istnieje dokładnie jedna dostępna sesja. Jeśli zobaczysz session_required, uruchom session list i wyraźnie wybierz zamierzoną sesję. Jeśli nie jest już na liście, uruchom ją ponownie i użyj nowego ID. Pomoc, intro i wykrywanie sesji nie wymagają wybranej sesji.

Automatyczne przechwytywanie ID sesji

Skrypty mogą odczytać result.session_id bezpośrednio z JSON zwróconego przez session start i ustawić OPENSHOT_SESSION dla kolejnych poleceń. Nie ma potrzeby ręcznego kopiowania ID ani czytania pliku dziennika. Sprawdź, czy uruchomienie powiodło się przed użyciem zwróconego ID.

Windows PowerShell (ustaw ścieżkę do pliku wykonywalnego swojej instalacji):

$openshot = "C:\Program Files\OpenShot Video Editor\openshot-qt-cmd.exe"
$reply = & $openshot --cli session start
if ($LASTEXITCODE -ne 0) { throw "OpenShot session startup failed" }
$session = $reply | ConvertFrom-Json
if (-not $session.ok -or -not $session.result.session_id) {
    throw "OpenShot did not return a session ID"
}
$env:OPENSHOT_SESSION = $session.result.session_id
& $openshot --cli timeline view

Linux Bash (wymaga jq do odczytu JSON):

openshot="/full/path/to/OpenShot.AppImage"
export APPIMAGELAUNCHER_DISABLE=1
if reply=$("$openshot" --cli session start) &&
   session_id=$(printf '%s' "$reply" | jq -er 'select(.ok == true) | .result.session_id | strings | select(length > 0)'); then
    export OPENSHOT_SESSION="$session_id"
    "$openshot" --cli timeline view
else
    echo "OpenShot session startup failed" >&2
fi

Zmienna środowiskowa wybiera sesję dla poleceń uruchamianych z tego terminala; nie zmienia ustawienia systemowego. Uruchomienie sesji nie ustawia zmiennej automatycznie. Po zatrzymaniu sesji wyczyść wybór za pomocą Remove-Item Env:OPENSHOT_SESSION w PowerShell lub unset OPENSHOT_SESSION w Bash.

Wyświetlanie i zatrzymywanie sesji

Aby wyświetlić wybraną sesję w edytorze:

openshot-cli session show

Na pulpicie session show tworzy edytor w tym samym procesie i utrzymuje aktywny projekt, ID, historię, zadania eksportu oraz połączenie. Powtarzane wywołania podnoszą istniejące okno. session start --show otwiera je natychmiast. Sesje uruchomione bez wyświetlacza lub z QT_QPA_PLATFORM=offscreen/minimal nie mogą później pokazać okna pulpitu. Dla tych sesji zapisz i otwórz projekt w nowej sesji pulpitu. Po wyświetleniu zamknij sesję przez okno edytora.

Opcje globalne (--session, --timeout) umieszczamy przed poleceniem. session serve pozostaje na pierwszym planie dla nadzorców; session start zwraca po zarejestrowaniu hosta w tle. session stop odrzuca niezapisane zmiany i aktywne eksporty. Używaj --discard tylko do celowego odrzucenia niezapisanych edycji.

Wynik polecenia

Wyniki są w formacie JSON na stdout, z wyjątkiem domyślnego tekstowego widoku osi czasu. Błędy są w formacie JSON na stderr z kodem wyjścia 1; błędy parsera argumentów mają kod wyjścia 2. Mutacje zwracają zwięzłe podsumowania za pomocą polecenia inspect. get zwraca natywny JSON obiektu. Odpowiedzi projektu zawierają rewizję; odpowiedzi katalogu efektów nie wymagają sesji. Logi z sesji bez interfejsu znajdują się obok ich rekordów rejestru. OPENSHOT_SESSION_DIR nadpisuje domyślny katalog ~/.openshot_qt/sessions.

Sesje akceptują polecenia lokalnie na Twoim komputerze. Zachowaj rejestr sesji w tajemnicy, ponieważ zawiera dane uwierzytelniające używane do dostępu do Twoich sesji edycyjnych. Eksporty działają na migawce, dzięki czemu możesz kontynuować edycję podczas wykonywania zadania.

Otwieranie i zapisywanie projektów

Projekt OpenShot (.osp) przechowuje Twoją edytowalną oś czasu. Eksportowanie tworzy gotowe wideo; zapisywanie projektu pozwala wrócić do jego klipów, efektów i kluczowych klatek później. Zapisuj projekt osobno, nawet gdy eksportujesz wideo.

Otwieranie projektu

Rozpocznij sesję z istniejącym projektem:

openshot-cli session start --project "/home/me/Videos/My Project.osp"

Dodaj --show, aby również otworzyć okno edytora. Aby użyć edytora, który już działa, znajdź go za pomocą session list. Ustaw OPENSHOT_SESSION na zwrócony identyfikator sesji, a następnie otwórz lub sprawdź projekt:

openshot-cli project open "/home/me/Videos/My Project.osp"
openshot-cli project get

Zamień przykładową ścieżkę na swoją własną i ujęcie w cudzysłów ścieżki zawierające spacje. project open zastępuje bieżący projekt wybranej sesji. Odmawia odrzucenia niezapisanych zmian, chyba że wyraźnie dodasz --discard; najpierw zapisz te zmiany, jeśli chcesz je zachować. Otwarcie przez CLI nie pokazuje interaktywnych dialogów brakujących mediów, więc zachowaj dostępność źródłowych mediów projektu.

Dla nowego, pustego projektu użyj session start bez --project, następnie zaimportuj media i dodaj klipy zgodnie z opisem w sekcji Edycja.

Zapisywanie projektu lub kopii

Zapisz do nowego pliku lub utwórz osobną wersję przed wprowadzeniem dalszych zmian:

openshot-cli project save "/home/me/Videos/My Project v2.osp"

Aby zaktualizować istniejący plik, wyraźnie zezwól na zastąpienie:

openshot-cli project save "/home/me/Videos/My Project v2.osp" --overwrite

Zawsze podawaj ścieżkę docelową. Zapisanie pliku .osp nie pakuje wszystkich źródłowych materiałów do tego pliku; zachowaj dostępność odwoływanych mediów podczas przenoszenia lub ponownego otwierania projektu.

Eksportowanie wideo

Automatyzuj renderowanie i eksportowanie za pomocą skryptów lub agentów AI, korzystając z ustawień projektu lub wybierając inny profil wyjściowy dla każdego renderu. Zadania eksportu mogą działać w tle lub czekać na zakończenie, zanim Twój skrypt będzie kontynuowany. Aby wyrenderować MP4 używając rozdzielczości i liczby klatek projektu:

openshot-cli export start "/home/me/Videos/video.mp4" --wait

Domyślnie OpenShot używa wideo H.264 i audio AAC. Zamień przykładową ścieżkę na swoją docelową, używając istniejącego folderu i nowej nazwy pliku. Istniejące pliki wyjściowe nigdy nie są nadpisywane. Eksportowanie nie zapisuje edytowalnego projektu .osp; użyj osobno project save, aby zachować swoją pracę edycyjną.

Opcja --wait utrzymuje działanie polecenia do momentu zakończenia eksportu lub zgłoszenia błędu. Przejrzyj gotowe wideo przed udostępnieniem.

Sprawdzanie postępu eksportu

Pomiń --wait, aby rozpocząć eksport w tle. Odpowiedź zawiera identyfikator zadania, którego możesz użyć do sprawdzenia postępu:

openshot-cli export start "/home/me/Videos/video.mp4"
openshot-cli export status JOB_ID
openshot-cli export status JOB_ID --wait
openshot-cli export list

Zamień JOB_ID na zwrócony identyfikator. Jeśli oczekiwanie wygaśnie, eksport będzie kontynuowany; sprawdzaj to samo zadanie zamiast rozpoczynać kolejny eksport. Aby zatrzymać zadanie, użyj export cancel JOB_ID. Każde zadanie rejestruje oś czasu na początku, więc późniejsze zmiany nie wpływają na eksport już w toku.

Domyślny czas oczekiwania to 600 sekund; zmień go za pomocą --wait-timeout. Jest to niezależne od globalnego limitu --timeout na żądanie. Błędy eksportu, anulowanie i przekroczenie czasu oczekiwania kończą się statusem 1 i zawierają szczegóły zadania.

Eksportowanie w wielu profilach

Eksportuj tę samą oś czasu w różnych rozdzielczościach lub proporcjach, wybierając profil eksportu dla każdego wyjścia. Profil eksportu dotyczy tylko tego zadania; nie zmienia profilu projektu edycyjnego. Profil ustawia wymiary, liczbę klatek i proporcje; preset eksportu wybiera ustawienia kodowania, takie jak MP4/H.264.

Znajdź dostępne profile i sprawdź ich ustawienia:

openshot-cli profile list --search 720
openshot-cli profile list --search 1080
openshot-cli profile get builtin:01280x0720p0030_16-09

Na przykład wyeksportuj wersje w orientacji poziomej w 720p i 1080p, a następnie wersję kwadratową 1080 na 1080. Wszystkie te profile używają 30 klatek na sekundę:

openshot-cli export start "/home/me/Videos/video-720p.mp4" --profile builtin:01280x0720p0030_16-09 --wait
openshot-cli export start "/home/me/Videos/video-1080p.mp4" --profile builtin:01920x1080p0030_16-09 --wait
openshot-cli export start "/home/me/Videos/video-square.mp4" --profile builtin:01080x1080p0030_01-01 --wait

Użyj innej nazwy pliku wyjściowego dla każdej wersji. Zachowaj niezmienione zmiany między zadaniami, gdy chcesz mieć dopasowane wersje. Zmiana proporcji może zmienić kadrowanie: sprawdź każde wyjście, szczególnie tytuły i animowane obiekty. Dla osobno skomponowanej wersji kwadratowej lub pionowej zapisz kopię projektu, zmień jego profil projektu i dostosuj klipy przed eksportem. Zobacz Profile i ustawienia eksportu poniżej dla niestandardowych profili i opcji kodowania.

Wsadowy eksport wielu projektów

Użyj jednej sesji bez interfejsu graficznego do renderowania kolejno kilku zapisanych projektów. Otwórz projekt, wyeksportuj go z --wait, a następnie otwórz następny projekt. Poniższe przykłady używają rozdzielczości i liczby klatek każdego projektu i tworzą pliki MP4 obok plików .osp. Dodaj --profile PROFILE_ID do polecenia eksportu, aby użyć jednego profilu wyjściowego dla każdego projektu.

Najpierw uruchom powyższy przykład automatycznego identyfikatora sesji w tym samym terminalu. Definiuje on openshot i wybiera nową sesję. Zamień poniższe ścieżki projektu na własne. Używaj unikalnych nazw wyjściowych, które jeszcze nie istnieją; przykłady sprawdzają wszystkie miejsca docelowe przed rozpoczęciem wsadu.

Windows PowerShell:

$projects = @(
    "C:\VideoProjects\First.osp",
    "C:\VideoProjects\Second.osp"
)
foreach ($project in $projects) {
    if (-not (Test-Path -LiteralPath $project -PathType Leaf)) {
        throw "Project not found: $project"
    }
    $output = [System.IO.Path]::ChangeExtension($project, ".mp4")
    if (Test-Path -LiteralPath $output) { throw "Output already exists: $output" }
}
foreach ($project in $projects) {
    $output = [System.IO.Path]::ChangeExtension($project, ".mp4")
    & $openshot --cli project open $project
    if ($LASTEXITCODE -ne 0) { throw "Could not open: $project" }
    & $openshot --cli export start $output --wait --wait-timeout 86400
    if ($LASTEXITCODE -ne 0) { throw "Export needs attention: $output" }
}
& $openshot --cli session stop
if ($LASTEXITCODE -ne 0) { throw "Could not stop the session" }
Remove-Item Env:OPENSHOT_SESSION

Linux Bash (nawiasy utrzymują obsługę błędów lokalnie dla wsadu):

(
    set -e
    : "${OPENSHOT_SESSION:?Run the session startup example first}"
    projects=(
        "/home/me/VideoProjects/First.osp"
        "/home/me/VideoProjects/Second.osp"
    )
    for project in "${projects[@]}"; do
        test -f "$project" || { echo "Project not found: $project" >&2; exit 1; }
        output="${project%.osp}.mp4"
        test ! -e "$output" || { echo "Output already exists: $output" >&2; exit 1; }
    done
    for project in "${projects[@]}"; do
        "$openshot" --cli project open "$project"
        "$openshot" --cli export start "${project%.osp}.mp4" --wait --wait-timeout 86400
    done
    "$openshot" --cli session stop
) && unset OPENSHOT_SESSION

Oba przepisy zatrzymują wsad w przypadku błędu polecenia i pozostawiają sesję dostępną do inspekcji. Limit oczekiwania wynosi tutaj 24 godziny na eksport. Przekroczenie limitu oczekiwania pozostawia renderowanie w toku: użyj export list i export status JOB_ID --wait przed ponowną próbą. Zakończone filmy pozostają na dysku; usuń zakończone projekty z wsadu przed wznowieniem. Po rozwiązaniu błędu zatrzymaj sesję i wyczyść jej zmienną środowiskową, gdy skończysz.

Wybieranie presetów i ustawień kodowania

Odkryj zainstalowane presety eksportu i obsługiwane ustawienia:

openshot-cli export preset list
openshot-cli export preset get builtin:format_mp4_x264
openshot-cli export capabilities
openshot-cli export start /tmp/reel.mp4 --preset builtin:format_mp4_x264 --quality med --wait

Eksport akceptuje również --from-file FILE_ID z opcjonalnym --create-custom. Ustawienia rozstrzygane są w tej kolejności: domyślne projektu, preset, zaawansowany JSON, jawne flagi profilu/jakości/zakresu. Zaawansowany JSON ujawnia kodeki wideo/audio i bitrate, układ/szybkość/kanały audio, natywne opcje kodeka, ustawienia urządzeń sprzętowych oraz liczbę wątków.

Na przykład wybierz opcję enkodera przez zaawansowany JSON:

openshot-cli export start /tmp/small.mp4 --profile builtin:00640x0360p0030_16-09 --json '{"video_options":{"preset":"fast"}}' --wait

Weryfikacja ustawień eksportu

Sprawdź ustawienia przed rozpoczęciem renderowania:

openshot-cli export validate /tmp/reel.mp4 --preset builtin:format_mp4_x264

Raport możliwości przedstawia dostępność skompilowanych kodeków, a nie fizycznej dostępności GPU. Weryfikacja idzie dalej: otwiera enkodery (w tym sprzętowe) i kontener z dokładnymi ustawieniami, w osobnym procesie, bez zapisywania pliku. Kombinacja, której kontener nie obsłuży, kończy się błędem incompatible_export, własnym wyjaśnieniem FFmpeg oraz ustawieniem do zmiany (details.cause.path):

openshot-cli export validate /tmp/song.mp3 --json '{"mode":"audio","format":"mp3","audio_codec":"aac"}'

Proces eksportu wykonuje tę samą kontrolę przed renderowaniem.

Renderowanie zakresu klatek

Użyj --start-frame i --end-frame, aby wyrenderować część osi czasu. Zakresy są włączne i indeksowane od 1 według FPS profilu eksportu. Na przykład wyrenderuj pierwsze 90 klatek przy 30 fps (trzy sekundy):

openshot-cli export start /tmp/excerpt.mp4 --profile builtin:01280x0720p0030_16-09 --start-frame 1 --end-frame 90 --wait

Eksport tylko audio i sekwencje obrazów

Wybierz tryb wyjścia za pomocą zaawansowanego JSON:

openshot-cli export start /tmp/music.wav --json '{"mode":"audio","format":"wav","audio_codec":"pcm_s16le"}' --wait
openshot-cli export start /tmp/frames --json '{"mode":"image_sequence","format":"png"}' --end-frame 3 --wait

Sekwencje obrazów wymagają nowego katalogu wyjściowego. Istniejące wyjścia nigdy nie są nadpisywane.

Edycja

Dodawanie klipów i efektów

Użyj identyfikatorów zwróconych przez import/dodaj/listuj i odkryj numery warstw za pomocą project get:

openshot-cli file import /absolute/path/video.mp4
openshot-cli clip add FILE_ID --layer 2000000 --position 3 --start 10 --end 17 --volume 0
openshot-cli clip set CLIP_ID --json '{"volume":0.5}'
openshot-cli clip keyframe set CLIP_ID --property volume --frame 301 --value 0
openshot-cli clip keyframe set CLIP_ID --property volume --frame 331 --value 1
openshot-cli effects add CLIP_ID saturation
openshot-cli effects set EFFECT_ID --json '{"saturation":1.2}'
openshot-cli project save /absolute/path/edit.osp

Wybierz profil projektu możliwie wcześnie; projekty z zawartością wspierają również zmiany profilu przez istniejący system konwersji FPS i cofania. --audio-only przy tworzeniu klipu wyłącza wideo, w tym osadzoną okładkę w plikach muzycznych. Aby użyć tego klipu do wizualizacji audio, włącz jego wideo i audio oraz postępuj zgodnie z pomocą efektu dotyczącą przezroczystych nakładek i rozmieszczenia warstw.

Zrozumienie synchronizacji klipu

Przykładowe klatki kluczowe zakładają projekt 30 fps i klip przycięty u źródła na 10 s. Pozycja jest w sekundach osi czasu; start/koniec to sekundy źródła, koniec jest wyłączny. Klatki zaczynają się od 1. Klatki miniatur pliku używają FPS źródła. Klatki osi czasu używają FPS projektu. Kluczowe klatki klipu używają współrzędnych źródła przy FPS projektu, więc przycinanie klipu nie przesuwa jego pierwszej widocznej klatki kluczowej do klatki 1.

Zmiana właściwości

set scala właściwości najwyższego poziomu. Skalary zamieniają właściwości z klatkami kluczowymi na stałe. Dostarczona zagnieżdżona krzywa zastępuje tę krzywą; użyj keyframe set, aby zmienić tylko jeden punkt. Argumenty JSON akceptują JSON w linii, @file.json lub - dla stdin. Nazwy właściwości, typy, enumy, klatki kluczowe, odniesienia i synchronizacja są weryfikowane przed edycją projektu. Błędy wskazują pole, oczekiwaną wartość, otrzymaną wartość oraz korektę, jeśli to możliwe. Zakresy suwaków GUI są orientacyjne tam, gdzie silnik obsługuje wartości poza nimi.

Dodawanie przejść

clip fade ID --in 0.5 --out 0.5 automatycznie oblicza współrzędne klatek kluczowych przycinania źródła. Zastępuje krzywą alfa; --property volume --value 0.25 tworzy zamiast tego zanikanie audio z maksymalnym wzmocnieniem 0,25. Czas trwania musi mieścić się między pierwszą a ostatnią widoczną klatką; zanikanie do zera następuje na ostatniej klatce.

Dzielenie klipów

clip split ID --at 6.5 używa sekund osi czasu, przyciąga do najbliższej klatki projektu i zachowuje obie połówki. Zachowuje krzywe współrzędnych źródła i duplikuje efekty z nowymi ID na prawej połowie, zgodnie z zachowaniem edytora przy cięciu. Lewa połowa zachowuje swoje ID. Odpowiedź raportuje żądane/rzeczywiste czasy podziału oraz oba podsumowania; nazwany wynik wsadu obsługuje {"$ref":"cut.right.id"}. Podziały odrzucają punkty końcowe i zablokowane ścieżki. Cofnięcie przywraca oryginalny klip w jednej transakcji.

Presety menu klipu

Predefiniowane ustawienia menu klipów edytora używają tego samego kodu co w wierszu poleceń. Każde polecenie wymienia swoje predefiniowane ustawienia w pomocy, a każde z nich stanowi pojedynczy krok cofania:

openshot-cli clip motion CLIP_ID --preset slide-in-left
openshot-cli clip motion CLIP_ID --preset pulse --at 4.5
openshot-cli clip look CLIP_ID --effect ColorGrade --preset warm_up
openshot-cli clip look CLIP_ID --effect all --preset none
openshot-cli clip speed CLIP_ID --mode forward --factor 2
openshot-cli clip speed CLIP_ID --mode freeze --at 3 --duration 2
openshot-cli clip repeat CLIP_ID --passes 3 --pattern pingpong
openshot-cli clip waveform CLIP_ID

Predefiniowane ustawienia ruchu odnoszą się do bieżącej transformacji klipu. Predefiniowane ustawienia wyglądu dodają lub zastępują jeden efekt, a none go usuwa. Prędkość i powtarzanie zmieniają czas każdego klatki kluczowej i długość klipu; clip speed --mode reset przywraca normalną prędkość. Inne akcje menu to zwykłe edycje: obrót i układ za pomocą clip set, przycinanie za pomocą effects add Crop. Polecenia działają również w edit apply i edit bulk.

Dodawanie i stylizowanie tekstu

text add tworzy tekst i umieszcza go jako klip, używając tego samego tekstu co narzędzie Text edytora. Opcje, które pomijasz, korzystają z domyślnego stylu edytora:

openshot-cli text add --text "Opening Night" --layer 5000000 --position 2 --duration 4 \
    --place lower-third --font "Noto Sans" --size 72 --bold --color "#ffffff" \
    --background "#80000000" --background-padding 16 --background-corner 12
openshot-cli text get CLIP_ID
openshot-cli text set CLIP_ID --stroke black --stroke-width 3
openshot-cli text set CLIP_ID --text $'Two\nlines' --line-spacing 1.4
openshot-cli text fonts --search noto
openshot-cli text list --search opening

Słowa, czcionka, rozmiar, wyrównanie, szerokość pola i domyślne kolory należą do tekstu w plikach projektu i są współdzielone przez każdy klip, który go używa, tak jak w edytorze. text set na jednym klipie zmienia je wszystkie i wymienia je w changed_clip_ids; --this-clip-only najpierw tworzy dla tego klipu jego własną kopię. clip add FILE_ID umieszcza kolejny klip tekstu z text list. Rozmiary są w pikselach przy rozdzielczości projektu, a kolory to #RRGGBB, #AARRGGBB (z alfa), nazwa CSS lub transparent. --place umieszcza pole na środku, krawędzi lub rogu, albo w dolnej trzeciej części. --line-spacing to wielokrotność normalnej odległości między liniami (1 to normalna), a --background-corner zaokrągla rogi tła i obramowania o tyle pikseli.

Klip tekstowy jest zwykłym klipem. Pozycja, skala, obrót, przezroczystość, czas, zanikania, predefiniowane ustawienia ruchu i efekty korzystają ze standardowych poleceń clip. Rozmiar czcionki, odstępy, szerokość pola oraz odstępy między literami i liniami określają rozmiar pola tekstowego, więc nie można ich animować klatkami kluczowymi; aby animować rozmiar tekstu, animuj skalę klipu. Każdy klip może animować własne kolory tekstu oraz szerokości konturu i obramowania tymi samymi poleceniami klatek kluczowych co inne właściwości:

openshot-cli clip keyframe list CLIP_ID
openshot-cli clip keyframe set CLIP_ID --property text_color.alpha --space clip --unit seconds --at 0 --value 0
openshot-cli clip keyframe set CLIP_ID --property text_color.alpha --space clip --unit seconds --at 1 --value 255

Animowane właściwości to text_color, text_background, text_stroke i text_border (kolory, z .red, .green, .blue i .alpha od 0 do 255), oraz text_stroke_width, text_border_width i text_background_corner. Własna animacja klipu ma pierwszeństwo przed współdzielonym stylem, a text get wymienia style animowane przez klip. text reset CLIP_ID przywraca klip do domyślnego stylu, jak Text → Reset Style; --keyframes-only usuwa tylko własną animację klipu. Aby wystylizować wiele tekstów naraz, wybierz je za pomocą {"text":true}:

openshot-cli edit bulk --select '{"text":true}' --json '[{"method":"text.set","params":{"font_family":"Noto Sans","stroke_width":2}}]'

Zastosowanie partii edycji

edit apply --json @edits.json --expect-revision 12 akceptuje do 256 uporządkowanych poleceń mutacji, używając nazw poleceń z kropkami, takich jak clip.set i effects.add (starsza pisownia effect.add również działa):

[
  {"method":"project.profile.set","params":{"id":"builtin:01280x0720p0024_16-09"}},
  {"method":"file.import","as":"media","params":{"path":"/tmp/video.mp4"}},
  {"method":"clip.add","as":"shot","params":{"file_id":{"$ref":"media.id"},"layer":1000000,"start":10,"end":15}},
  {"method":"clip.fade","params":{"id":{"$ref":"shot.id"},"fade_in":0.5,"fade_out":0.5}}
]

Opcjonalne as wiąże wynik dla późniejszych poleceń w tej samej partii. Obiekt {"$ref":"shot.id"} zastępuje pole tego wyniku. Odwołania rozwiązują tylko wcześniejsze nazwy; błędy pisowni, odwołania do przodu i duplikaty nazw powodują błąd przed aktualizacjami na żywo. Odpowiedź zawiera uporządkowane, zwarte wyniki oraz mapę refs rzeczywistych identyfikatorów. Wszystkie zmiany w udanej partii tworzą jeden krok cofania/przywracania. project.profile.set obsługuje również wypełnione oś czasu. Polecenia otwierania, zapisywania, eksportu i inspekcji pozostają poza partiami edycji. Pomoc każdego polecenia wymienia nazwy parametrów JSON, w tym pisownię z podkreśleniem flag powłoki (np. --fps-num staje się fps_num).

Weryfikacja partii i obsługa błędów

Wszystkie polecenia w partiach edycji są wstępnie sprawdzane na odłączonym projekcie przed jakimikolwiek aktualizacjami na żywo. Nieprawidłowe dane wejściowe pozostawiają projekt na żywo i rewizję bez zmian. Poprawne partie tworzą jedną grupę cofania. Nieoczekiwane błędy wykonania mogą nadal powodować częściowe zmiany; błędy raportują wykonane operacje. Limit czasu nie oznacza anulowania, więc sprawdź stan przed ponowną próbą mutacji.

Precyzyjna edycja klatek kluczowych

clip, transition i effects obsługują keyframe list, set, remove, clear, transform, copy i paste. Ścieżki właściwości mogą odnosić się do zagnieżdżonych krzywych, takich jak color.red w efekcie Chroma Key. Edycja zagnieżdżonej krzywej zachowuje kanały rodzeństwa. Uruchom keyframe list ID bez właściwości, aby odkryć ścieżki krzywych i liczbę punktów. Odkrywanie i listy punktów zawierają kontekst czasowy przycinania/pozycji; listy punktów raportują także natywne współrzędne klatek. get i properties ujawniają kompletny natywny obiekt i metadane właściwości. Błędy identyfikują nieprawidłowe pola, sugerują podobne nazwy właściwości i wyjaśniają korekty współrzędnych.

Wybierz współrzędne jawnie za pomocą --space native|clip|timeline oraz --unit frames|seconds. Wszystkie klatki używają FPS projektu i są numerowane od 1; sekundy zaczynają się od zera i zaokrąglają do najbliższej klatki. Native to istniejące współrzędne klatki kluczowej silnika (włącznie z przycięciem źródła). Współrzędne klipu zaczynają się od widocznego punktu wejścia klipu; współrzędne osi czasu zaczynają się od zera czasu projektu. Dołączone efekty korzystają z czasu nadrzędnego klipu. Te współrzędne odnoszą się do czasu animacji, a nie do klatek mediów wybranych przez krzywą zmiany czasu.

Dla klipu umieszczonego na 5 sekundzie, przyciętego na 2 sekundy, w projekcie 30 fps, klatka klipu 1, klatka osi czasu 151 i klatka natywna 61 odnoszą się do tego samego punktu. Pozycja i przycinanie przyciągają się niezależnie do siatki klatek projektu. Wypisanie całej krzywej może zawierać ukryte punkty z niepozytywnymi współrzędnymi klipu/osi czasu. Dziedziczny --frame nadal oznacza klatkę natywną i nie może być łączony z --at.

Przykłady:

openshot-cli clip keyframe set CLIP --property location_x --space clip --unit seconds --at 0 --value -1
openshot-cli clip keyframe set CLIP --property location_x --space clip --unit seconds --at 1 --value 0 --interpolation bezier --handles '{"handle_left":{"X":0.2,"Y":0.9}}'
openshot-cli effects keyframe set EFFECT --property color.red --space clip --at 31 --value 200
openshot-cli clip keyframe list CLIP --property location_x --space clip --unit seconds
openshot-cli clip keyframe transform CLIP --property location_x --space clip --start 1 --end 31 --scale 2 --offset 15
openshot-cli clip keyframe copy TARGET --property location_x --source-id SOURCE --space clip --start 1 --end 31 --at 1 --mode merge
openshot-cli clip keyframe remove CLIP --property location_x --space clip --at 31
openshot-cli clip keyframe clear CLIP --property location_x --value 0

Interpolacja, wygładzanie i podgląd

Interpolacja opisuje segment do punktu docelowego. Liniowa zapewnia stałą prędkość między punktami. Stała utrzymuje poprzednią wartość aż do punktu docelowego, a następnie skacze. Natywne domyślne uchwyty Béziera wygładzają oba końce każdego segmentu. Dodanie punktu pośredniego może więc wprowadzić niezamierzone spowolnienie; dla jednego wygładzonego ruchu zacznij od dwóch punktów końcowych. Zazwyczaj pozostaw uchwyty bez zmian i wybierz nazwany preset dla określonego stylu.

Odkryj te same presety wygładzania używane w menu edytora, bez sesji:

openshot-cli clip keyframe presets

Zastosuj preset do nadchodzącego segmentu, ustawiając jego punkt docelowy:

openshot-cli clip keyframe set CLIP --property scale_x --space clip --unit seconds --at 0 --value 1
openshot-cli clip keyframe set CLIP --property scale_x --space clip --unit seconds --at 4 --value 1.2 --easing ease-in-out

Opcja wygładzania oznacza Béziera. Ustawia razem wychodzący uchwyt poprzedniego punktu i wchodzący uchwyt punktu docelowego, zachowując inne uchwyty i wartości punktów. Musi istnieć wcześniejszy punkt. Nie łącz tego z niestandardowymi uchwytami ani inną interpolacją. Presety działają w partiach i szablonach zbiorczych. Preset GUI ease („Ease (Default)”) różni się od natywnych uchwytów używanych przez zwykłą interpolację Béziera. Presety cofania mogą przekraczać wartości punktów końcowych.

Sprawdź ruch przed renderowaniem, używając natywnego ewaluatora krzywych:

openshot-cli clip keyframe preview CLIP --property scale_x --space clip --unit seconds --start 0 --end 4
openshot-cli clip keyframe preview CLIP --property scale_x --space clip --unit seconds --at 2

Podgląd jest tylko do odczytu i działa identycznie dla efektów i przejść. Zwraca wartości oraz znakowane incoming_rate / outgoing_rate w jednostkach właściwości na sekundę, obliczane z bezpośrednio sąsiednich klatek. Są to różnice skończone, nie pochodne analityczne. Przy natywnej klatce 1 incoming_rate jest zerowy. Wskaźniki sąsiednich klatek mogą sprawdzać poza żądanym zakresem. Wskaźniki bliskie zeru wokół punktu wewnętrznego wskazują pauzę; różne wskaźniki wskazują zmianę prędkości. Stała interpolacja ujawnia skok w punkcie docelowym.

Bez zakresu podgląd obejmuje pierwszy i ostatni punkt krzywej. Zakresy są włączne, domyślnie z 17 równomiernie rozmieszczonymi próbkami (–count: 2–256). Kluczowe klatki i ich bezpośredni sąsiedzi wewnątrz zakresu są również uwzględnieni, więc mała liczba próbek nie ukryje zatrzymania kluczowej klatki. Maksymalnie 1024 próbki; większe żądania wymagają węższego zakresu. –at próbuje jedną klatkę. Podgląd raportuje współrzędne w żądanej przestrzeni i rzeczywiste natywne klatki; sekundy przyciągają się do klatek projektu tak jak podczas edycji.

Dla zaawansowanych niestandardowych uchwytów zarówno X, jak i Y są normalizowane względem segmentu: X to ułamek jego zakresu klatek; Y to ułamek zmiany wartości. Pierwsza kontrola pochodzi z handle_right poprzedniego punktu, druga z handle_left punktu docelowego. Natywne domyślne to right=(0.5, 0), left=(0.5, 1), z płaskimi stycznymi na końcach. Zmiana samego handle_type nie przelicza ciągłej stycznej przez otaczające punkty. Istniejące uchwyty są zachowywane podczas przesuwania punktu.

Zakresy kluczowych klatek są włączne, w przeciwieństwie do zakresów czasowych wyboru klipu. Lista generuje points, których wartości co.X używają żądanej przestrzeni/jednostki współrzędnych. Przekaż tę tablicę do keyframe paste --json @points.json z tą samą przestrzenią/jednostką, wybierając --mode merge (zamień pasujące klatki, zachowaj pozostałe) lub --mode replace (zamień całą krzywą). copy akceptuje źródło tego samego rodzaju obiektu, opcjonalny --source-property i kotwiczy pierwszy wybrany punkt źródłowy na --at na celu. Inne krzywe i obiekty źródłowe pozostają niezmienione.

transform stosuje dodatnią skalę czasu wokół pierwszego wybranego punktu lub --pivot, po którym następuje znakowany --offset w wybranej jednostce. Przyciąganie klatek tworzące duplikaty współrzędnych jest odrzucane, włącznie z kolizjami z punktami poza wybranym zakresem. Współrzędne natywne muszą pozostać co najmniej 1. Natywne znormalizowane uchwyty Béziera i interpolacja poruszają się z każdym punktem; uchwyty nie są absolutnymi współrzędnymi klatek. set --handles zmienia tylko dostarczone uchwyty. Interpolacja należy do punktu docelowego.

clear zachowuje stały punkt bazowy na natywnej klatce 1: określ --value lub pobierz próbkę istniejącej krzywej za pomocą --at (domyślnie natywna klatka 1). Usunięcie ostatniego punktu również zachowuje stałą bazę, więc kolejne dodania kluczowych klatek pozostają ważne.

Wybieranie i edytowanie wielu klipów

Użyj edit apply --dry-run, aby zweryfikować partię bez zmiany projektu. Użyj edit bulk, aby powtórzyć mały szablon polecenia dla każdego wybranego klipu, z wszystkimi zmianami zgrupowanymi w jednym kroku cofania.

Najpierw wyświetl podgląd wyboru:

openshot-cli edit select --json '{"layer":1000000,"start":5,"end":20,"effect":"Saturation"}'

Selektory obsługują ids (tablica unikalnych identyfikatorów klipów), layer, start/end (sekundy na osi czasu), file_id, effect (nazwa klasy lub alias) oraz text (true wybiera klipy tekstowe). Filtry łączą się za pomocą AND. Zakresy czasowe wybierają klipy nakładające się na [start, end); nie przycinają tych klipów. Wyniki są uporządkowane według pozycji, warstwy, a następnie ID, i zawierają ID, podsumowania, stan blokady oraz aktualną rewizję. Nieznane ID są błędami. Pusty selektor jest odrzucany; użyj jawnie {"all":true} dla każdego klipu. Selekcje są ograniczone do 256 klipów i nigdy nie są cicho obcinane.

Na przykład zapisz tę tablicę jako templates.json:

[
  {"method":"clip.adjust","params":{"values":{"position":{"add":2},"volume":{"multiply":0.5}}}},
  {"method":"effects.add","as":"look","params":{"type":"Saturation"}},
  {"method":"effects.keyframe.set","params":{"id":{"$ref":"look.id"},"property":"saturation","space":"clip","at":1,"value":0}},
  {"method":"effects.keyframe.set","params":{"id":{"$ref":"look.id"},"property":"saturation","space":"clip","at":31,"value":1.2}}
]

Zweryfikuj ją, a następnie zastosuj względem rewizji zwróconej przez selekcję:

openshot-cli edit bulk --select '{"ids":["CLIP_A","CLIP_B"]}' --json @templates.json --dry-run
openshot-cli edit bulk --select '{"ids":["CLIP_A","CLIP_B"]}' --json @templates.json --expect-revision 42

Polecenia dotyczące istniejących klipów dziedziczą id; effects.add dziedziczy clip_id. Pomijaj te parametry docelowe w szablonach. Edycje efektów muszą odnosić się do wcześniejszego nazwanego wyniku. Nazwy są lokalne dla każdego wybranego klipu, więc look.id odnosi się do innego efektu dla każdego klipu. Aby zmienić istniejące instancje efektów za pomocą jawnego ID, kontynuuj używanie edit apply. Wybrany zestaw ID jest ustalany przed rozszerzeniem; zmiany pozycji lub efektów nie zmieniają pozostałych celów.

clip set stosuje właściwości bezwzględne; clip adjust stosuje multiply, a następnie add do właściwości numerycznej lub każdej wartości na krzywej, zachowując czas punktów, interpolację i znormalizowane uchwyty. Waliduje wartości wynikowe, w tym nieujemne pozycje i głośność. Pola strukturalne pozostają chronione.

Operacje zbiorcze odrzucają puste selekcje, zablokowane ścieżki docelowe oraz więcej niż 256 rozszerzonych poleceń. Każda rozszerzona operacja przechodzi oddzielną weryfikację przed jakąkolwiek edycją na żywo. Próby testowe nie rezerwują wygenerowanych ID. Użyj --expect-revision, aby odrzucić przestarzałe selekcje. Udane partie stanowią jeden krok cofania, także po zapisaniu/ponownym otwarciu. Odświeżenia GUI są grupowane. Nieoczekiwane błędy w czasie wykonywania/nasłuchiwaniu mogą pozostawić częściową transakcję; błąd raportuje zakończone operacje, a cofnięcie cofa tę grupę, jak przy edit apply.

Profile

Odkrywaj profile i dopasowuj importowane wideo bez zgadywania ID:

openshot-cli profile list --search 720
openshot-cli profile get builtin:01280x0720p0024_16-09
openshot-cli profile match --file FILE_ID
openshot-cli project profile get
openshot-cli project profile set --from-file FILE_ID
openshot-cli project profile set builtin:01280x0720p0024_16-09
openshot-cli project profile set --json '{"width":640,"height":352,"display_ratio":{"num":20,"den":11},"fps":{"num":24000,"den":1001}}'

Wpisy katalogowe zawierają stabilne ID, opisy, wymiary, wymierne FPS, proporcje oraz ustawienia skanowania. Lista/wyszukiwanie jest stronicowane. Dopasowanie źródła zwraca dokładne ID oraz uszeregowane alternatywy z wyraźnymi różnicami. Ustawienie z pliku wymaga dokładnego dopasowania, chyba że określono --create-custom; nigdy nie wybiera cicho profilu bliskiego. Obrazy statyczne i źródła tylko audio nie mogą definiować profilu wideo. Dopasowanie używa zadeklarowanego FPS źródła.

Ustawienia niestandardowe są osadzone w zapisanym projekcie, w tym wymierne wartości, więc ponowne otwarcie nie wymaga instalacji osobnego pliku profilu. Zmiany profilu projektu korzystają z istniejącej konwersji liczby klatek i jednej transakcji cofania. Cofanie/przywracanie przywraca czas klipu i klatki kluczowe, w tym pozycje wrażliwe na zaokrąglenia. Eksport może niezależnie wybrać profil bez zmiany projektu.

Zapisana historia cofania podąża za preferencją limitu historii edytora. Limit jest miękkim budżetem akcji: wszystkie rekordy należące do zachowanych transakcji są przechowywane, więc zapis nie może obciąć dużej partii do częściowej akcji cofania. Zero wyłącza zapisaną historię. Nadal obowiązuje oddzielny limit 256 poleceń na partię.

Inspekcja mediów i osi czasu

Sprawdź czas klipu i układ ścieżek jako tekst lub JSON albo renderuj obrazy, aby przejrzeć kompozycję i kadrowanie przed eksportem.

Podsumowania osi czasu

Użyj widoku tekstowego dla szybkiego przeglądu lub ustrukturyzowanego JSON dla skryptów i agentów:

openshot-cli timeline view --start 5 --end 12
openshot-cli timeline view --start 5 --end 12 --format json
openshot-cli timeline overview --start 5 --end 12

timeline view domyślnie pokazuje zwarty tekst z używanymi ścieżkami, ID obiektów, przedziałami osi czasu/źródła, stanem strumienia, wzmocnieniem oraz przerwami/nakładkami. Użyj --detail summary|clips|full, aby wybrać szczegóły, --format json dla ustrukturyzowanego kontekstu oraz --start/--end, --layer i paginację, aby zawęzić wynik.

timeline overview dostarcza zwarty, ustrukturyzowany kontekst bez bajtów obrazu: uporządkowane ID, sekwencję na ścieżkę, przedziały osi czasu/źródła, widoczne zakresy przycięcia, współrzędne klatek, stan audio/wideo, efekty oraz sąsiednie przerwy lub nakładki. Przedziały i zakresy klatek są wyłączające koniec; numery klatek są indeksowane od 1. Klipy źródłowe używają FPS źródła; współrzędne osi czasu i klatek kluczowych używają FPS projektu. Użyj --layer oraz --start/--end, aby zawęzić, oraz --limit/--offset do paginacji (domyślnie 100, maksymalnie 500 elementów). Klipy z mapowaniem czasu jawnie ukrywają wywnioskowane mapowania źródła. Użyj zwróconej rewizji z edit apply --expect-revision.

Podglądy klatek i arkusze kontaktowe

Renderuj pojedynczą klatkę za pomocą thumbnail lub próbkuj zakres za pomocą strip. Użyj file, aby sprawdzić źródło mediów, oraz timeline, aby sprawdzić złożone wideo, w tym efekty i klipy warstwowe:

openshot-cli file thumbnail FILE_ID --frame 301 --output /tmp/source.png
openshot-cli file strip FILE_ID --start 10 --end 20 --count 12 --output /tmp/source-strip.png
openshot-cli timeline thumbnail --frame 91 --output /tmp/timeline-frame.png
openshot-cli timeline strip --start 0 --end 20 --count 12 --output /tmp/timeline-strip.png

Obrazy klatek domyślnie mają rozmiar 320x180 pikseli; arkusze kontaktowe domyślnie 160x90 na kafelek, plus etykiety kodu czasowego. Użyj --width i --height, aby wybrać rozmiar wyjściowy w pikselach. Odpowiedzi zawierają dokładne metadane próbek/klatek. Arkusze kontaktowe pomagają przeglądać kompozycję w sekwencji; użyj podglądów klatek kluczowych i renderowanego wideo, aby ocenić ruch między tymi próbkami.

Obrazy osi czasu

Przechwyć układ ścieżek edytora, w tym linijkę, miniatury, efekty, przejścia i przebiegi fal:

openshot-cli timeline view --start 0 --end 20 --pixels-per-second 80 --output /tmp/tracks.png

Określenie --output wybiera format obrazu; --format image również wybiera go jawnie. Przechwycenie nie zmienia widoku edytora ani projektu. Odpowiedzi zawierają identyfikatory klipów i czas wraz z granicami pikseli.

Obrazy domyślnie mają szerokość 1280 pikseli, a wysokość dopasowaną do używanych ścieżek. Użyj --width, --height lub --all-tracks, aby dostosować układ, oraz --track-size lub --track-label-width, aby dostosować ścieżki i etykiety. Zakres start/koniec określa powiększenie; --pixels-per-second zamiast tego wyznacza szerokość na podstawie zakresu czasu.

Widoki przebiegów fal audio

Wybierz --mode waveforms, aby sprawdzić obwiednie audio na osi czasu:

openshot-cli timeline view --start 5 --end 12 --mode waveforms --output /tmp/waves.png

--mode auto używa istniejącego buforowanego wyświetlania przebiegów; --mode thumbnails pokazuje zamiast tego miniatury. Przebiegi fal reprezentują poziomy szczytowe/RMS źródła z regulacją głośności i czasu klipu, przed efektami audio lub miksowaniem.

Niebuforowane wyodrębnianie przebiegów fal dekoduje całe źródła, ograniczone do 600 sekund na źródło i 1200 sekund źródła na żądanie. Zawężenie widocznego zakresu nie zmniejsza tej pracy dekodowania. Dla dłuższych źródeł najpierw wygeneruj przebiegi fal w edytorze lub użyj trybu miniatur. Kolejne żądania mogą ponownie używać buforowanych przebiegów fal.

Wyjście obrazu i ograniczenia

Ścieżki obrazów muszą wskazywać nowe pliki PNG w istniejących katalogach. Obrazy są ograniczone do 4096 pikseli na oś, 8 388 608 pikseli łącznie oraz 64 próbek arkusza kontaktowego. Żądania przekraczające te limity kończą się niepowodzeniem przed renderowaniem.

Obrazy są zapisywane do plików; odpowiedzi JSON zawierają ich ścieżki i rozmiary image_bytes. Inspekcja czeka na zakończenie obrazu, a duże żądania mogą chwilowo zajmować edytor.

Obsługa limitów czasu poleceń

Limit czasu żądania nie oznacza, że mutacja się nie powiodła. Użyj identyfikatora operacji z błędu z poleceniem operation get ID przed ponowną próbą. operation list odkrywa ostatnie mutacje oraz ich stany, rewizje i wyniki. Zakończone operacje zachowują swoje wyniki, jeśli są wystarczająco małe, w tym zwrócone identyfikatory obiektów. Przechowywanie jest ograniczone do 100 operacji i 4 MiB, a pojedyncze ciała wyników powyżej 256 KiB są pomijane. Te zapisy trwają tylko podczas bieżącej sesji. Nie przywracają projektów po awarii ani nie zapobiegają ponownemu zastosowaniu tej samej edycji przez powtarzane polecenie. Zadania eksportu mają własne polecenia statusu/listy.