Giao diện Dòng lệnh

Đưa OpenShot vào quy trình làm việc dòng lệnh của bạn. Nhập cảnh quay, cắt và sắp xếp các đoạn clip, áp dụng hiệu ứng, tạo hoạt ảnh thuộc tính với keyframe, và xuất video từ terminal của bạn. Sử dụng một vài lệnh để tự động hóa các chỉnh sửa lặp đi lặp lại, viết script cho dự án định kỳ, hoặc để một tác nhân AI giúp lắp ráp và tinh chỉnh video.

Dòng lệnh hoạt động với cùng các dự án như trình chỉnh sửa. Bạn có thể điều khiển một trình chỉnh sửa đang mở và xem lại các thay đổi khi làm việc, hoặc làm việc trong một phiên không giao diện mà không cần mở cửa sổ. Một phiên giữ dự án của bạn mở giữa các lệnh, bao gồm các chỉnh sửa, lịch sử hoàn tác và các công việc xuất. Lưu nó dưới dạng dự án .osp bất cứ khi nào bạn muốn tiếp tục chỉnh sửa sau.

Bắt đầu

Sử dụng tệp thực thi OpenShot đã cài đặt của bạn kèm theo --cli. Bắt đầu với intro để có hướng dẫn ngắn về phiên làm việc, chỉnh sửa, hoạt ảnh và lưu, hoặc help để xem tổng quan lệnh. Các lệnh này không cần phiên làm việc đang hoạt động. Các ví dụ dưới đây yêu cầu bản OpenShot có hỗ trợ chỉnh sửa dòng lệnh.

Linux AppImage

Từ thư mục chứa AppImage bạn đã tải về:

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

Thay OpenShot.AppImage bằng tên tệp bạn đã tải về. Nếu AppImageLauncher hiển thị hộp thoại tích hợp desktop, hãy đặt APPIMAGELAUNCHER_DISABLE=1 trước khi chạy lệnh:

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

Đối với script hoặc các lệnh lặp lại, thiết lập một lần trong shell hiện tại của bạn:

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

Biến này phải được thiết lập trước khi khởi chạy AppImage: AppImageLauncher có thể chặn nó trước khi OpenShot nhận được --cli. Đường dẫn media tương đối và các tệp @batch.json được giải quyết từ thư mục làm việc của bạn. Giữ tệp AppImage sẵn có trong khi các phiên hoặc xuất đang chạy.

Linux Snap

Đối với OpenShot Snap, sử dụng:

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

Quyền truy cập tệp của Snap cũng áp dụng cho chỉnh sửa dòng lệnh. Giữ media, dự án và xuất ở các vị trí mà Snap có thể truy cập, như thư mục nhà của bạn. Để cho phép truy cập ổ đĩa ngoài, kết nối quyền removable-media:

sudo snap connect openshot-qt:removable-media

Windows

Quan trọng

Sử dụng openshot-qt-cmd.exe để chỉnh sửa dòng lệnh trên Windows. Tệp thực thi console này hiển thị kết quả lệnh, trợ giúp và lỗi trong terminal của bạn. Tệp thực thi desktop, openshot-qt.exe, không hiển thị đầu ra chuẩn trong terminal tương tác, khiến các lệnh không có phản hồi hiển thị và làm CLI khó sử dụng.

Trong PowerShell, từ thư mục cài đặt OpenShot:

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

Nếu bạn ở thư mục khác, sử dụng đường dẫn đầy đủ đến openshot-qt-cmd.exe. Giữ --cli sau tên tệp thực thi.

macOS

Đối với cài đặt trong Applications:

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

Tìm lệnh

Trong suốt hướng dẫn này, openshot-cli là cách viết tắt cho lệnh cài đặt của bạn ở trên, như snap run openshot-qt --cli hoặc ./OpenShot.AppImage --cli. Một số cài đặt cũng cung cấp lệnh openshot-cli trực tiếp. Khi chạy từ mã nguồn, sử dụng python3 src/launch.py --cli trong môi trường Python của OpenShot.

Chỉ --cli, --cli help, và --cli --help đều hiển thị cùng một tổng quan. Trợ giúp sẽ cụ thể hơn khi bạn điều hướng các lệnh:

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

Trợ giúp nhóm giải thích quy trình làm việc với ví dụ; trợ giúp thao tác mô tả các đối số và hành vi. --help tương đương với help ở cuối. Tất cả các lệnh trợ giúp hoạt động mà không cần phiên chỉnh sửa.

effects list hiển thị các hiệu ứng có sẵn với mô tả ngắn gọn. Trợ giúp hiệu ứng giải thích các thuộc tính, mặc định, lựa chọn và phạm vi của chúng. effects instances liệt kê các hiệu ứng đã gắn vào các đoạn clip, kèm theo ID đoạn clip cha. Tên lớp, tên hiển thị và bí danh dấu gạch dưới xác định cùng một hiệu ứng.

Làm việc với script và tác nhân AI

Các tác nhân lập trình AI như Codex và Claude Code có thể sử dụng CLI để kiểm tra và chỉnh sửa dự án OpenShot qua các lệnh terminal. Cung cấp cho tác nhân đường dẫn đến tệp thực thi OpenShot của bạn, media hoặc dự án để làm việc, và kết quả mong muốn: thời lượng, kích thước, phong cách hoạt ảnh và vị trí xuất. Yêu cầu nó đọc --cli intro trước khi bắt đầu. Các lệnh giống nhau hoạt động khi bạn tự nhập hoặc chạy từ script.

Bắt đầu với intro, sau đó sử dụng trợ giúp theo lệnh khi cần. Một quy trình hữu ích là chọn một phiên, kiểm tra dự án, thực hiện một số thay đổi nhỏ, xem lại kết quả và lưu lại. Các lệnh trả về JSON có cấu trúc để script và tác nhân có thể sử dụng trực tiếp ID đối tượng và kết quả thay vì phải giải thích đầu ra màn hình.

  • Kiểm tra trước khi chỉnh sửa. Sử dụng ID trả về và thông tin thuộc tính thay vì đoán tên, số track hoặc thời gian. Chọn phiên rõ ràng khi có nhiều hơn một dự án đang mở.

  • Nhóm các chỉnh sửa lặp lại. Sử dụng edit apply cho một chuỗi thay đổi hoặc edit bulk để áp dụng mẫu cho các đoạn clip được chọn. Xác thực với --dry-run trước khi áp dụng một lô.

  • Kiểm tra hoạt ảnh. Chọn không gian tọa độ, bắt đầu với một vài khung hình chính, và sử dụng các cài đặt trước easing để có chuyển động quen thuộc. keyframe preview lấy mẫu đường cong để bạn có thể phát hiện các điểm dừng hoặc nhảy trước khi xuất. Cũng xem lại chuyển động đã được kết xuất; một bảng liên hệ đơn thuần không thể hiện được cảm giác của hoạt ảnh.

  • Lưu và theo dõi xuất. Lưu dự án một cách rõ ràng và kiểm tra trạng thái công việc xuất trước khi coi đầu ra là hoàn thành. Nếu một yêu cầu hết thời gian chờ, hãy kiểm tra trạng thái của nó trước khi lặp lại chỉnh sửa.

Các phần dưới đây giải thích các quy trình làm việc này và các quy ước về thời gian của chúng.

Phiên làm việc và đầu ra

Bắt đầu hoặc tìm một phiên làm việc

Bắt đầu một phiên làm việc không giao diện (không có cửa sổ chỉnh sửa):

openshot-cli session start

Để mở một dự án hiện có khi khởi động, thêm --project "/path/project.osp". Phản hồi JSON thành công chứa result.session_id. Sao chép giá trị đó. Nếu OpenShot đã chạy hoặc bạn quên ID, hãy tìm các phiên có sẵn bằng:

openshot-cli session list

Chọn phiên làm việc cho dự án bạn định chỉnh sửa. Bạn không cần phải bắt đầu một phiên mới cho mỗi lệnh.

Chọn một phiên làm việc

Mẹo

Đặt OPENSHOT_SESSION một lần, sau đó chạy các lệnh bình thường. Terminal của bạn sẽ nhớ phiên đã chọn, vì vậy bạn không cần phải truyền --session với mỗi lệnh. Sử dụng ví dụ PowerShell hoặc Bash bên dưới.

Thay thế SESSION_ID bên dưới bằng session_id trả về từ session start hoặc 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

Trên macOS, sử dụng cú pháp export tương tự. Đối với các lệnh macOS hoặc Snap, thay thế bằng tệp thực thi của bạn từ phần Bắt đầu. Lựa chọn này chỉ áp dụng cho terminal này và các lệnh được khởi chạy từ nó. Đặt lại trong terminal mới hoặc cập nhật khi chuyển sang phiên khác.

Các ví dụ chỉnh sửa và xuất còn lại giả định OPENSHOT_SESSION đã được đặt. Phần tiếp theo sẽ hướng dẫn cách lấy ID tự động cho các script.

Để nhắm đến một phiên khác chỉ cho một lệnh, sử dụng --session. Nó ghi đè OPENSHOT_SESSION mà không thay đổi lựa chọn trong terminal của bạn:

openshot-cli --session OTHER_SESSION_ID project get

Với tệp thực thi đóng gói, đặt ghi đè này sau --cli và trước nhóm lệnh: --cli --session OTHER_SESSION_ID project get.

Chọn tự động chỉ hoạt động khi tồn tại đúng một phiên có thể truy cập. Nếu bạn thấy session_required, chạy session list và chọn rõ ràng phiên mong muốn. Nếu nó không còn trong danh sách, hãy khởi động lại và sử dụng ID mới. Trợ giúp, intro, và khám phá phiên không yêu cầu phiên được chọn.

Tự động lấy ID phiên làm việc

Các script có thể đọc trực tiếp result.session_id từ JSON trả về bởi session start và đặt OPENSHOT_SESSION cho các lệnh tiếp theo. Không cần sao chép ID thủ công hoặc đọc file log. Kiểm tra khởi động thành công trước khi sử dụng ID trả về.

Windows PowerShell (đặt đường dẫn thực thi cho cài đặt của bạn):

$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 (yêu cầu jq để đọc 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

Biến môi trường chọn một phiên cho các lệnh khởi chạy từ terminal này; nó không thay đổi cài đặt toàn hệ thống. Bắt đầu một phiên không tự động đặt biến này. Sau khi dừng phiên, xóa lựa chọn bằng Remove-Item Env:OPENSHOT_SESSION trong PowerShell hoặc unset OPENSHOT_SESSION trong Bash.

Hiển thị và dừng một phiên làm việc

Để hiển thị phiên đã chọn trong trình chỉnh sửa:

openshot-cli session show

Trên máy tính để bàn, session show tạo trình chỉnh sửa trong cùng một tiến trình và giữ dự án đang hoạt động, các ID, lịch sử, công việc xuất và kết nối. Gọi lại nhiều lần sẽ đưa cửa sổ hiện có lên trước. session start --show mở nó ngay lập tức. Các phiên bắt đầu không có hiển thị, hoặc với QT_QPA_PLATFORM=offscreen/minimal, không thể hiển thị cửa sổ máy tính để bàn sau đó. Với các phiên đó, hãy lưu và mở dự án trong một phiên máy tính để bàn mới. Khi đã hiển thị, đóng phiên qua cửa sổ trình chỉnh sửa.

Các tùy chọn toàn cục (--session, --timeout) đặt trước lệnh. session serve chạy ở chế độ nền trước cho người giám sát; session start trả về sau khi máy chủ nền đăng ký. session stop từ chối các thay đổi chưa lưu và các xuất đang hoạt động. Chỉ sử dụng --discard để cố ý bỏ các chỉnh sửa chưa lưu.

Kết quả lệnh

Kết quả là JSON trên stdout, ngoại trừ chế độ xem timeline văn bản mặc định. Lỗi là JSON trên stderr với mã thoát 1; lỗi phân tích đối số thoát 2. Các thao tác thay đổi trả về tóm tắt gọn với lệnh inspect. get trả về JSON đối tượng gốc. Phản hồi dự án bao gồm phiên bản; phản hồi danh mục hiệu ứng không yêu cầu phiên. Nhật ký từ các phiên không giao diện nằm cạnh các bản ghi đăng ký của chúng. OPENSHOT_SESSION_DIR ghi đè thư mục mặc định ~/.openshot_qt/sessions.

Phiên làm việc chấp nhận lệnh cục bộ trên máy tính của bạn. Giữ bí mật đăng ký phiên làm việc, vì nó chứa thông tin xác thực dùng để truy cập các phiên chỉnh sửa của bạn. Xuất bản hoạt động từ một ảnh chụp nhanh, vì vậy bạn có thể tiếp tục chỉnh sửa trong khi một công việc đang chạy.

Mở và lưu dự án

Một dự án OpenShot (.osp) lưu trữ dòng thời gian có thể chỉnh sửa của bạn. Xuất bản tạo ra một video hoàn chỉnh; lưu dự án cho phép bạn quay lại các clip, hiệu ứng và khung khóa sau này. Hãy lưu dự án của bạn riêng biệt ngay cả khi bạn cũng xuất video.

Mở một dự án

Bắt đầu một phiên làm việc với dự án hiện có:

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

Thêm --show để mở cửa sổ trình chỉnh sửa của nó nữa. Để sử dụng trình chỉnh sửa đang chạy, tìm nó bằng session list. Đặt OPENSHOT_SESSION thành ID phiên trả về, sau đó mở hoặc kiểm tra một dự án:

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

Thay thế đường dẫn ví dụ bằng đường dẫn của bạn, và đặt dấu ngoặc cho các đường dẫn chứa khoảng trắng. project open thay thế dự án hiện tại của phiên được chọn. Nó từ chối loại bỏ các chỉnh sửa chưa lưu trừ khi bạn thêm rõ ràng --discard; hãy lưu các chỉnh sửa đó trước nếu bạn muốn giữ chúng. Mở qua CLI không hiển thị hộp thoại tương tác thiếu phương tiện, vì vậy hãy giữ nguồn phương tiện của dự án sẵn có.

Đối với dự án mới, trống, sử dụng session start mà không có --project, sau đó nhập phương tiện và thêm clip như mô tả trong phần Chỉnh sửa.

Lưu dự án hoặc bản sao

Lưu vào tệp mới, hoặc tạo một phiên bản riêng biệt trước khi thực hiện thêm thay đổi:

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

Để cập nhật tệp hiện có, cho phép thay thế rõ ràng:

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

Luôn cung cấp đường dẫn đích. Lưu một tệp .osp không đóng gói tất cả cảnh quay nguồn của bạn vào tệp đó; giữ phương tiện tham chiếu sẵn có khi di chuyển hoặc mở lại dự án.

Xuất video

Tự động hóa việc kết xuất và xuất video từ các script hoặc tác nhân AI, sử dụng cài đặt dự án hoặc chọn một cấu hình đầu ra khác cho mỗi lần kết xuất. Các công việc xuất có thể chạy nền hoặc chờ hoàn thành trước khi script của bạn tiếp tục. Để kết xuất MP4 sử dụng độ phân giải và tốc độ khung hình của dự án:

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

Theo mặc định, OpenShot sử dụng video H.264 và âm thanh AAC. Thay thế đường dẫn ví dụ bằng đích của bạn, sử dụng thư mục hiện có và tên tệp mới. Các đầu ra hiện có không bao giờ bị ghi đè. Xuất không lưu dự án .osp có thể chỉnh sửa của bạn; sử dụng project save riêng để giữ công việc chỉnh sửa.

Tùy chọn --wait giữ lệnh chạy cho đến khi xuất hoàn thành hoặc báo lỗi. Xem lại video hoàn chỉnh trước khi chia sẻ.

Kiểm tra tiến trình xuất

Bỏ --wait để bắt đầu xuất ở chế độ nền. Phản hồi bao gồm một ID công việc bạn có thể dùng để kiểm tra tiến trình:

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

Thay thế JOB_ID bằng ID trả về. Nếu thời gian chờ hết hạn, việc xuất vẫn tiếp tục; kiểm tra cùng một công việc thay vì bắt đầu xuất khác. Để dừng công việc, dùng export cancel JOB_ID. Mỗi công việc ghi lại dòng thời gian khi bắt đầu, vì vậy các chỉnh sửa sau không thay đổi xuất đang tiến hành.

Thời gian chờ mặc định là 600 giây; điều chỉnh bằng --wait-timeout. Điều này tách biệt với --timeout toàn cục cho mỗi yêu cầu. Lỗi xuất, hủy bỏ và hết thời gian chờ sẽ thoát với trạng thái 1 và bao gồm chi tiết công việc.

Xuất theo nhiều cấu hình

Xuất cùng một dòng thời gian ở các độ phân giải hoặc tỷ lệ khung hình khác nhau bằng cách chọn cấu hình xuất cho mỗi đầu ra. Một cấu hình xuất chỉ áp dụng cho công việc đó; nó không thay đổi cấu hình dự án chỉnh sửa. Một cấu hình đặt kích thước, tốc độ khung hình và tỷ lệ khung hình; một cài đặt trước xuất chọn các thiết lập mã hóa như MP4/H.264.

Tìm các cấu hình có sẵn và kiểm tra cài đặt của chúng:

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

Ví dụ, xuất các phiên bản phong cảnh ở 720p và 1080p, sau đó một phiên bản vuông ở 1080 x 1080. Các cấu hình này đều sử dụng 30 fps:

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

Sử dụng tên tệp đầu ra khác nhau cho mỗi phiên bản. Giữ các chỉnh sửa không thay đổi giữa các công việc khi bạn muốn các phiên bản khớp nhau. Thay đổi tỷ lệ khung hình có thể thay đổi bố cục: xem lại từng đầu ra, đặc biệt là tiêu đề và đối tượng hoạt hình. Đối với phiên bản vuông hoặc chân dung được soạn riêng, lưu một bản sao dự án, thay đổi cấu hình dự án và điều chỉnh các clip trước khi xuất. Xem phần Cấu hình và cài đặt xuất bên dưới để biết cấu hình tùy chỉnh và tùy chọn mã hóa.

Xuất hàng loạt nhiều dự án

Tái sử dụng một phiên làm việc không giao diện để kết xuất nhiều dự án đã lưu theo thứ tự. Mở một dự án, xuất nó với --wait, sau đó mở dự án tiếp theo. Các ví dụ dưới đây sử dụng độ phân giải và tốc độ khung hình riêng của từng dự án và tạo các tệp MP4 bên cạnh các tệp .osp. Thêm --profile PROFILE_ID vào lệnh xuất để sử dụng một cấu hình đầu ra cho mọi dự án.

Trước tiên hãy chạy thành công ví dụ session-ID tự động phù hợp ở trên, trong cùng một terminal. Nó định nghĩa openshot và chọn phiên làm việc mới. Thay thế các đường dẫn dự án bên dưới bằng của bạn. Sử dụng tên đầu ra riêng biệt chưa tồn tại; các ví dụ kiểm tra tất cả các điểm đến trước khi bắt đầu lô.

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 (dấu ngoặc giữ xử lý lỗi cục bộ cho lô):

(
    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

Cả hai phương pháp đều dừng lô khi lệnh thất bại và giữ phiên làm việc để kiểm tra. Giới hạn chờ ở đây là 24 giờ cho mỗi lần xuất. Hết thời gian chờ sẽ để quá trình render tiếp tục chạy: sử dụng export list và export status JOB_ID --wait trước khi thử lại. Video hoàn thành vẫn còn trên đĩa; xóa các dự án đã hoàn thành khỏi lô trước khi tiếp tục. Sau khi giải quyết lỗi, dừng phiên và xóa biến môi trường khi bạn hoàn tất.

Chọn các cài đặt trước và thiết lập mã hóa

Khám phá các cài đặt trước xuất đã cài đặt và các thiết lập được hỗ trợ:

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

Xuất cũng chấp nhận --from-file FILE_ID với tùy chọn --create-custom. Các thiết lập được giải quyết theo thứ tự: mặc định dự án, cài đặt trước, JSON nâng cao, các cờ rõ ràng cho hồ sơ/chất lượng/phạm vi. JSON nâng cao cho phép truy cập codec video/audio và bitrate, bố cục/tốc độ/kênh âm thanh, tùy chọn codec gốc, thiết lập thiết bị phần cứng và số lượng luồng.

Ví dụ, chọn một tùy chọn bộ mã hóa qua JSON nâng cao:

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

Xác thực các thiết lập xuất

Kiểm tra các thiết lập trước khi bắt đầu render:

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

Báo cáo khả năng cho biết codec đã biên dịch có sẵn, không phải khả năng GPU vật lý. Việc xác thực đi xa hơn: nó mở các bộ mã hóa (bao gồm bộ mã hóa phần cứng) và container với các thiết lập chính xác, trong một tiến trình riêng biệt, không ghi file. Một kết hợp mà container không thể chứa sẽ thất bại với incompatible_export, giải thích của FFmpeg, và thiết lập cần thay đổi (details.cause.path):

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

Tiến trình xuất chạy kiểm tra tương tự trước khi render.

Render một phạm vi khung hình

Sử dụng --start-frame và --end-frame để render một phần của dòng thời gian. Phạm vi bao gồm và bắt đầu từ 1 theo FPS của hồ sơ xuất. Ví dụ, render 90 khung hình đầu tiên ở 30 fps (ba giây):

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

Xuất chỉ âm thanh và chuỗi hình ảnh

Chọn chế độ đầu ra với JSON nâng cao:

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

Chuỗi hình ảnh yêu cầu thư mục đầu ra mới. Các đầu ra hiện có không bao giờ bị ghi đè.

Chỉnh sửa

Thêm clip và hiệu ứng

Sử dụng các ID trả về bởi import/add/list, và tìm số lớp với 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

Chọn hồ sơ dự án sớm khi có thể; các dự án đã có dữ liệu cũng hỗ trợ thay đổi hồ sơ thông qua hệ thống chuyển đổi FPS và hoàn tác hiện có. --audio-only khi tạo clip sẽ tắt video, bao gồm cả ảnh bìa nhúng trong file nhạc. Để sử dụng clip đó cho Hiển thị Âm thanh, hãy bật video và âm thanh của nó, và làm theo hướng dẫn hiệu ứng về lớp phủ trong suốt và vị trí lớp.

Hiểu về thời gian clip

Các khung hình chính ví dụ giả định dự án 30fps và clip được cắt tại nguồn 10 giây. Vị trí tính bằng giây trên dòng thời gian; bắt đầu/kết thúc là giây nguồn, kết thúc không bao gồm. Khung hình bắt đầu từ 1. Khung hình thu nhỏ file dùng FPS nguồn. Khung hình dòng thời gian dùng FPS dự án. Khung hình chính clip dùng tọa độ nguồn theo FPS dự án, nên việc cắt clip không làm khung hình chính đầu tiên hiển thị chuyển về khung 1.

Thay đổi thuộc tính

set hợp nhất các thuộc tính cấp cao nhất. Các giá trị vô hướng biến các thuộc tính có khung hình chính thành hằng số. Một đường cong lồng nhau được cung cấp thay thế đường cong đó; dùng keyframe set để thay đổi chỉ một điểm. Tham số JSON chấp nhận JSON nội tuyến, @file.json, hoặc - cho stdin. Tên thuộc tính, kiểu, enum, khung hình chính, tham chiếu và thời gian được xác thực trước khi chỉnh sửa dự án. Lỗi xác định trường, giá trị mong đợi, giá trị nhận được và sửa chữa nếu có thể. Phạm vi thanh trượt GUI chỉ mang tính tham khảo khi engine hỗ trợ giá trị vượt quá.

Thêm hiệu ứng mờ dần

clip fade ID --in 0.5 --out 0.5 tự động tính toán tọa độ khung hình chính cắt nguồn. Nó thay thế đường cong alpha; --property volume --value 0.25 thay vào đó tạo hiệu ứng mờ âm thanh với đỉnh âm lượng 0.25. Thời lượng phải nằm giữa khung hình đầu và cuối hiển thị; hiệu ứng mờ dần kết thúc ở giá trị không trên khung cuối.

Chia clip

clip split ID --at 6.5 sử dụng giây trên dòng thời gian, tự động căn khung gần nhất của dự án, và giữ cả hai phần. Nó giữ lại các đường cong tọa độ nguồn và sao chép hiệu ứng với ID mới ở nửa bên phải, theo hành vi cắt của trình chỉnh sửa. Nửa bên trái giữ nguyên ID. Phản hồi báo cáo thời gian cắt yêu cầu/thực tế và cả hai bản tóm tắt; kết quả lô có tên hỗ trợ {"$ref":"cut.right.id"}. Việc cắt từ chối điểm cuối và các track bị khóa. Hoàn tác khôi phục clip gốc trong một giao dịch.

Cài đặt trước menu clip

Các cài đặt trước menu clip của trình chỉnh sửa sử dụng cùng mã từ dòng lệnh. Mỗi lệnh liệt kê các cài đặt trước trong phần trợ giúp của nó, và mỗi cái là một bước hoàn tác duy nhất:

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

Các cài đặt trước chuyển động liên quan đến biến đổi hiện tại của clip. Các cài đặt trước Look thêm hoặc thay thế một hiệu ứng, và none loại bỏ nó. Tốc độ và lặp lại điều chỉnh lại thời gian từng khung hình chính và thay đổi độ dài clip; clip speed --mode reset khôi phục tốc độ bình thường. Các hành động menu khác là chỉnh sửa đơn giản: xoay và bố cục với clip set, cắt với effects add Crop. Các lệnh cũng hoạt động trong edit apply và edit bulk.

Thêm và tạo kiểu văn bản

text add tạo một văn bản và đặt nó như một clip, sử dụng cùng văn bản với công cụ Text của trình chỉnh sửa. Các tùy chọn bạn bỏ qua sẽ sử dụng kiểu mặc định của trình chỉnh sửa:

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

Các từ, phông chữ, kích thước, căn chỉnh, chiều rộng hộp và màu mặc định thuộc về văn bản trong Tệp Dự án và được chia sẻ bởi mọi clip sử dụng nó, giống như trong trình chỉnh sửa. text set trên một clip thay đổi tất cả chúng và liệt kê chúng trong changed_clip_ids; --this-clip-only trước tiên tạo bản sao riêng cho clip đó. clip add FILE_ID đặt một clip khác của văn bản từ text list. Kích thước tính bằng pixel theo độ phân giải dự án, và màu sắc là #RRGGBB, #AARRGGBB (có alpha), tên CSS, hoặc transparent. --place đặt hộp ở trung tâm, một cạnh hoặc góc, hoặc phần ba dưới. --line-spacing là bội số của khoảng cách bình thường giữa các dòng (1 là bình thường), và --background-corner làm tròn các góc nền và viền theo số pixel đó.

Một clip văn bản là một clip thông thường. Vị trí, tỷ lệ, xoay, độ mờ, thời gian, hiệu ứng mờ dần, cài đặt trước chuyển động và hiệu ứng đều sử dụng các lệnh clip bình thường. Kích thước phông chữ, khoảng đệm, chiều rộng hộp, và khoảng cách chữ và dòng xác định kích thước hộp văn bản, vì vậy chúng không thể được tạo khung khóa; để tạo hoạt ảnh kích thước văn bản, hãy tạo khung khóa tỷ lệ clip. Mỗi clip có thể tạo hoạt ảnh màu văn bản riêng, đường viền và độ rộng viền với các lệnh khung khóa giống như các thuộc tính khác:

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

Các thuộc tính được tạo hoạt ảnh là text_color, text_background, text_stroke và text_border (màu sắc, với .red, .green, .blue và .alpha từ 0 đến 255), cùng với text_stroke_width, text_border_width và text_background_corner. Hoạt ảnh riêng của clip sẽ ưu tiên hơn kiểu chia sẻ, và text get liệt kê các kiểu mà clip tạo hoạt ảnh. text reset CLIP_ID trả clip về kiểu mặc định, giống như Text → Reset Style; --keyframes-only chỉ loại bỏ hoạt ảnh riêng của clip. Để tạo kiểu nhiều văn bản cùng lúc, chọn chúng với {"text":true}:

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

Áp dụng một loạt chỉnh sửa

edit apply --json @edits.json --expect-revision 12 chấp nhận tới 256 lệnh biến đổi có thứ tự, sử dụng tên lệnh có dấu chấm như clip.set và effects.add (cách viết cũ effect.add cũng hoạt động):

[
  {"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}}
]

Tùy chọn as liên kết một kết quả cho các lệnh sau trong cùng một lô. Một đối tượng {"$ref":"shot.id"} thay thế trường của kết quả đó. Tham chiếu chỉ giải quyết tên trước đó; lỗi chính tả, tham chiếu tiến, và tên trùng lặp sẽ thất bại trước khi cập nhật trực tiếp. Phản hồi bao gồm kết quả gọn gàng có thứ tự và bản đồ refs của các ID thực tế. Tất cả thay đổi trong một lô thành công tạo thành một bước hoàn tác/làm lại. project.profile.set cũng hỗ trợ các dòng thời gian đã được điền. Các lệnh mở, lưu, xuất và kiểm tra nằm ngoài các lô chỉnh sửa. Phần trợ giúp của mỗi lệnh liệt kê tên tham số JSON, bao gồm cách viết dấu gạch dưới của các cờ shell (ví dụ, --fps-num trở thành fps_num).

Xác thực các lô và xử lý lỗi

Tất cả các lệnh trong các lô chỉnh sửa được kiểm tra trước trên một dự án tách rời trước khi cập nhật trực tiếp. Đầu vào không hợp lệ sẽ giữ nguyên dự án trực tiếp và phiên bản. Các lô hợp lệ tạo thành một nhóm hoàn tác. Các lỗi thời gian chạy không mong muốn vẫn có thể tạo ra các thay đổi một phần; lỗi báo cáo các thao tác đã hoàn thành. Hết thời gian không đồng nghĩa với việc hủy bỏ, vì vậy hãy kiểm tra trạng thái trước khi thử lại các biến đổi.

Chỉnh sửa khung khóa chính xác

clip, transition, và effects hỗ trợ keyframe list, set, remove, clear, transform, copy, và paste. Đường dẫn thuộc tính có thể truy cập các đường cong lồng nhau, như color.red trên hiệu ứng Chroma Key. Chỉnh sửa một đường cong lồng nhau giữ nguyên các kênh anh em. Chạy keyframe list ID mà không có thuộc tính để khám phá đường dẫn đường cong và số điểm. Việc khám phá và liệt kê điểm bao gồm ngữ cảnh thời gian cắt/vị trí; liệt kê điểm cũng báo cáo tọa độ khung gốc. get và properties hiển thị đầy đủ đối tượng gốc và siêu dữ liệu thuộc tính. Lỗi xác định các trường không hợp lệ, gợi ý tên thuộc tính gần đúng, và giải thích các sửa tọa độ.

Chọn tọa độ rõ ràng với --space native|clip|timeline và --unit frames|seconds. Tất cả các khung hình sử dụng FPS dự án và bắt đầu từ 1; giây bắt đầu từ 0 và chụp vào khung gần nhất. Native là tọa độ khung khóa của engine hiện tại (bao gồm cắt nguồn). Tọa độ clip bắt đầu từ điểm vào clip hiển thị; tọa độ dòng thời gian bắt đầu từ thời gian 0 của dự án. Các hiệu ứng đính kèm sử dụng thời gian của clip cha. Các tọa độ này đề cập đến thời gian hoạt ảnh, không phải các khung phương tiện được chọn bởi đường cong tái bản đồ thời gian.

Đối với một clip đặt tại 5 giây, cắt tại 2 giây, trong một dự án 30 fps, khung clip 1, khung thời gian 151 và khung gốc 61 đều chỉ cùng một điểm. Vị trí và cắt được căn chỉnh độc lập với lưới khung dự án. Liệt kê toàn bộ đường cong có thể bao gồm các điểm ẩn với tọa độ clip/thời gian không dương. Tham số --frame cũ vẫn có nghĩa là khung gốc và không thể kết hợp với --at.

Ví dụ:

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

Nội suy, làm mượt và xem trước

Nội suy mô tả đoạn vào điểm đích. Tuyến tính cho tốc độ ổn định giữa các điểm. Hằng số giữ giá trị trước đó cho đến điểm đích, sau đó nhảy. Tay cầm Bezier mặc định gốc làm mượt ở cả hai đầu mỗi đoạn. Thêm một điểm trung gian có thể gây chậm không mong muốn; với một chuyển động làm mượt, bắt đầu với hai điểm đầu cuối. Thông thường để nguyên tay cầm và chọn một mẫu đặt tên cho phong cách cụ thể.

Khám phá các mẫu làm mượt giống như trong menu của trình chỉnh sửa, không cần phiên làm việc:

openshot-cli clip keyframe presets

Áp dụng một mẫu đặt sẵn cho đoạn đến bằng cách thiết lập điểm đích của nó:

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

Tùy chọn làm mượt ngụ ý Bezier. Nó thiết lập tay cầm ra của điểm trước và tay cầm vào của điểm đích cùng nhau, giữ nguyên các tay cầm và giá trị điểm khác. Phải có điểm trước đó. Không kết hợp với tay cầm tùy chỉnh hoặc nội suy khác. Các mẫu đặt sẵn hoạt động theo lô và mẫu hàng loạt. Mẫu GUI ease ("Ease (Mặc định)") khác với tay cầm gốc dùng trong nội suy Bezier thuần túy. Các mẫu đặt sẵn lùi có thể vượt quá giá trị điểm cuối.

Kiểm tra chuyển động trước khi kết xuất, sử dụng bộ đánh giá đường cong gốc:

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

Xem trước chỉ đọc và hoạt động giống nhau cho hiệu ứng và chuyển tiếp. Nó trả về giá trị và tỷ lệ incoming_rate / outgoing_rate có dấu theo đơn vị thuộc tính trên giây, tính từ các khung liền kề ngay lập tức. Đây là sai phân hữu hạn, không phải đạo hàm phân tích. Tại khung gốc 1, tỷ lệ vào là bằng không. Tỷ lệ khung liền kề có thể kiểm tra ngoài phạm vi yêu cầu. Tỷ lệ gần bằng không quanh điểm bên trong cho thấy tạm dừng; tỷ lệ khác nhau cho thấy thay đổi tốc độ. Nội suy hằng số cho thấy nhảy tại điểm đích.

Không có phạm vi, xem trước trải dài từ điểm đầu đến điểm cuối của đường cong. Phạm vi bao gồm cả hai đầu, với 17 mẫu cách đều theo mặc định (--count: 2–256). Các khung chính và các điểm lân cận ngay bên trong phạm vi cũng được bao gồm, nên số mẫu thưa không che giấu sự dừng khung chính. Tối đa là 1024 mẫu; yêu cầu lớn hơn cần phạm vi hẹp hơn. --at lấy mẫu một khung. Xem trước báo cáo tọa độ không gian yêu cầu và khung gốc thực tế; giây được căn chỉnh với khung dự án như khi chỉnh sửa.

Đối với tay cầm tùy chỉnh nâng cao, cả X và Y được chuẩn hóa theo đoạn: X là phần tỷ lệ của khoảng khung; Y là phần tỷ lệ của sự thay đổi giá trị. Điều khiển đầu tiên lấy từ tay cầm phải của điểm trước, điều khiển thứ hai từ tay cầm trái của điểm đích. Mặc định gốc là phải=(0.5, 0), trái=(0.5, 1), với tiếp tuyến đầu cuối phẳng. Chỉ thay đổi handle_type không tính lại tiếp tuyến liên tục qua các điểm xung quanh. Tay cầm hiện có được giữ nguyên khi di chuyển điểm.

Phạm vi khung chính là bao gồm, không giống như phạm vi thời gian chọn clip. Danh sách phát ra points có giá trị co.X sử dụng không gian/đơn vị tọa độ yêu cầu. Truyền mảng đó vào keyframe paste --json @points.json với cùng không gian/đơn vị, chọn --mode merge (thay thế khung trùng, giữ lại các khung khác) hoặc --mode replace (thay thế toàn bộ đường cong). copy chấp nhận nguồn cùng loại đối tượng, tùy chọn --source-property, và neo điểm nguồn được chọn đầu tiên tại --at trên mục tiêu. Các đường cong và đối tượng nguồn khác không thay đổi.

transform áp dụng tỷ lệ thời gian dương quanh điểm được chọn đầu tiên, hoặc --pivot, theo sau là --offset có dấu theo đơn vị chọn. Việc căn khung tạo tọa độ trùng bị từ chối, bao gồm va chạm với điểm ngoài phạm vi chọn. Tọa độ gốc phải luôn lớn hơn hoặc bằng 1. Tay cầm Bézier chuẩn hóa gốc và nội suy di chuyển cùng mỗi điểm; tay cầm không phải tọa độ khung tuyệt đối. set --handles chỉ thay đổi tay cầm được cung cấp. Nội suy thuộc về điểm đích.

clear giữ một điểm cơ sở cố định tại khung gốc 1: chỉ định --value hoặc lấy mẫu đường cong hiện có với --at (mặc định khung gốc 1). Xóa điểm cuối cùng cũng giữ cơ sở cố định, nên các khung chính thêm sau vẫn hợp lệ.

Chọn và chỉnh sửa nhiều clip

Sử dụng edit apply --dry-run để kiểm tra một lô mà không thay đổi dự án. Sử dụng edit bulk để lặp lại một mẫu lệnh nhỏ cho mỗi clip được chọn, với tất cả thay đổi được nhóm thành một bước hoàn tác.

Trước tiên xem trước một lựa chọn:

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

Bộ chọn hỗ trợ ids (mảng ID clip duy nhất), layer, start/end (giây trên dòng thời gian), file_id, effect (tên lớp hoặc bí danh), và text (true chọn các clip văn bản). Bộ lọc kết hợp với AND. Khoảng thời gian chọn các clip chồng lên [start, end); chúng không cắt các clip đó. Kết quả được sắp xếp theo vị trí, lớp, rồi ID, và bao gồm ID, tóm tắt, trạng thái khóa, và phiên bản hiện tại. ID không xác định là lỗi. Bộ chọn rỗng bị từ chối; sử dụng {"all":true} rõ ràng cho mỗi clip. Lựa chọn bị giới hạn tối đa 256 clip và không bao giờ bị cắt ngầm.

Ví dụ, lưu mảng này dưới tên 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}}
]

Xác thực nó, sau đó áp dụng với phiên bản trả về bởi lựa chọn:

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

Các lệnh clip hiện có kế thừa id; effects.add kế thừa clip_id. Bỏ qua các tham số mục tiêu này trong mẫu. Chỉnh sửa hiệu ứng phải tham chiếu đến kết quả đã đặt tên trước đó. Tên là cục bộ cho mỗi clip được chọn, nên look.id tham chiếu đến hiệu ứng khác nhau cho mỗi clip. Để thay đổi các thể hiện hiệu ứng hiện có bằng ID rõ ràng, tiếp tục sử dụng edit apply. Bộ ID được chọn cố định trước khi mở rộng; thay đổi vị trí hoặc hiệu ứng không làm thay đổi các mục tiêu còn lại.

clip set áp dụng các thuộc tính tuyệt đối; clip adjust áp dụng multiply rồi add cho một thuộc tính số hoặc mọi giá trị trong một đường cong, giữ nguyên thời gian điểm, nội suy và tay cầm chuẩn hóa. Nó xác thực các giá trị kết quả, bao gồm vị trí không âm và âm lượng. Các trường cấu trúc vẫn được bảo vệ.

Các thao tác hàng loạt từ chối lựa chọn rỗng, các track mục tiêu bị khóa, và hơn 256 lệnh mở rộng. Mỗi thao tác mở rộng đều trải qua kiểm tra trước tách rời trước khi chỉnh sửa trực tiếp. Chạy thử không giữ ID đã tạo. Sử dụng --expect-revision để từ chối lựa chọn lỗi thời. Các lô thành công là một bước hoàn tác, bao gồm sau khi lưu/mở lại. Làm mới GUI được gom nhóm. Lỗi runtime/người nghe không mong muốn vẫn có thể để lại giao dịch một phần; lỗi báo cáo các thao tác đã hoàn thành và hoàn tác sẽ phục hồi nhóm đó, như với edit apply.

Hồ sơ

Khám phá hồ sơ và khớp video nhập khẩu mà không đoán 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}}'

Các mục danh mục bao gồm ID ổn định, mô tả, kích thước, FPS hữu tỉ, tỷ lệ khung hình và cài đặt quét. Danh sách/tìm kiếm được phân trang. Khớp nguồn trả về ID chính xác và các lựa chọn thay thế được xếp hạng với sự khác biệt rõ ràng. Cài đặt từ tệp yêu cầu khớp chính xác trừ khi chỉ định --create-custom; nó không bao giờ chọn ngầm một hồ sơ gần đó. Ảnh tĩnh và nguồn chỉ âm thanh không thể định nghĩa hồ sơ video. Việc khớp sử dụng FPS nguồn đã khai báo.

Cài đặt tùy chỉnh được nhúng trong dự án đã lưu, bao gồm tỷ lệ hữu tỉ, nên mở lại không cần cài đặt tệp hồ sơ riêng biệt. Thay đổi hồ sơ dự án sử dụng chuyển đổi tốc độ khung hình hiện có và một giao dịch hoàn tác. Hoàn tác/làm lại phục hồi thời gian clip và keyframe, bao gồm vị trí nhạy cảm với làm tròn. Xuất có thể chọn hồ sơ độc lập mà không thay đổi dự án.

Lịch sử hoàn tác đã lưu tuân theo tùy chọn giới hạn lịch sử của trình chỉnh sửa. Giới hạn là ngân sách hành động mềm: tất cả bản ghi thuộc các giao dịch được giữ lại đều được giữ, nên việc lưu không thể cắt ngắn một lô lớn thành hành động hoàn tác một phần. Giá trị 0 vô hiệu hóa lịch sử đã lưu. Giới hạn yêu cầu lô 256 lệnh riêng biệt vẫn áp dụng.

Kiểm tra phương tiện và dòng thời gian

Kiểm tra thời gian clip và bố cục track dưới dạng văn bản hoặc JSON, hoặc kết xuất hình ảnh để xem lại bố cục và khung hình trước khi xuất.

Tóm tắt dòng thời gian

Sử dụng chế độ xem văn bản để tổng quan nhanh, hoặc JSON có cấu trúc cho kịch bản và tác nhân:

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 mặc định là văn bản gọn với các track đã dùng, ID đối tượng, khoảng thời gian dòng thời gian/nguồn, trạng thái luồng, âm lượng, và khoảng trống/chồng lấn. Dùng --detail summary|clips|full để chọn chi tiết, --format json cho ngữ cảnh có cấu trúc, và --start/--end, --layer, cùng phân trang để tập trung kết quả.

timeline overview cung cấp ngữ cảnh có cấu trúc gọn mà không có byte hình ảnh: ID theo thứ tự, trình tự mỗi track, khoảng thời gian dòng thời gian/nguồn, phạm vi cắt hiển thị, tọa độ khung hình, trạng thái âm thanh/hình ảnh, hiệu ứng, và khoảng trống hoặc chồng lấn lân cận. Khoảng thời gian và phạm vi khung hình không bao gồm điểm cuối; số khung hình bắt đầu từ 1. Khung hình nguồn dùng FPS nguồn; tọa độ dòng thời gian và keyframe dùng FPS dự án. Dùng --layer và --start/--end để tập trung, và --limit/--offset để phân trang (mặc định 100, tối đa 500 mục). Các clip đổi thời gian rõ ràng giữ lại ánh xạ nguồn suy luận. Dùng phiên bản trả về với edit apply --expect-revision.

Xem trước khung hình và bảng liên hệ

Kết xuất một khung hình đơn với thumbnail hoặc lấy mẫu một phạm vi với strip. Dùng file để kiểm tra phương tiện nguồn và timeline để kiểm tra video đã ghép, bao gồm hiệu ứng và các clip xếp lớp:

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

Hình ảnh khung hình mặc định là 320x180 pixel; bảng liên hệ mặc định là 160x90 mỗi ô, cộng với nhãn mã thời gian. Dùng --width và --height để chọn kích thước đầu ra. Phản hồi bao gồm siêu dữ liệu mẫu/khung hình chính xác. Bảng liên hệ giúp xem lại bố cục qua một chuỗi; dùng xem trước keyframe và video kết xuất để đánh giá chuyển động giữa các mẫu đó.

Hình ảnh dòng thời gian

Chụp bố cục các bản nhạc của trình chỉnh sửa, bao gồm thước đo, hình thu nhỏ, hiệu ứng, chuyển tiếp và dạng sóng:

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

Chỉ định --output để chọn định dạng hình ảnh; --format image cũng chọn định dạng đó một cách rõ ràng. Việc chụp không thay đổi khung nhìn hoặc dự án của trình chỉnh sửa. Phản hồi bao gồm ID clip và thời gian cùng với giới hạn pixel.

Hình ảnh mặc định rộng 1280 pixel, chiều cao phù hợp với các bản nhạc được sử dụng. Dùng --width, --height hoặc --all-tracks để điều chỉnh bố cục, và --track-size hoặc --track-label-width để điều chỉnh bản nhạc và nhãn. Phạm vi bắt đầu/kết thúc xác định mức thu phóng; --pixels-per-second thay vào đó lấy chiều rộng từ phạm vi thời gian.

Chế độ xem dạng sóng âm thanh

Chọn --mode waveforms để kiểm tra bao âm thanh trên dòng thời gian:

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

--mode auto sử dụng hiển thị dạng sóng đã được lưu trong bộ nhớ đệm; --mode thumbnails hiển thị hình thu nhỏ thay thế. Dạng sóng biểu thị mức đỉnh/RMS nguồn với điều chỉnh âm lượng và thời gian clip, trước khi áp dụng hiệu ứng âm thanh hoặc trộn.

Việc trích xuất dạng sóng không lưu trong bộ nhớ đệm giải mã toàn bộ nguồn, giới hạn 600 giây mỗi nguồn và 1200 giây nguồn mỗi yêu cầu. Thu hẹp phạm vi hiển thị không giảm công việc giải mã đó. Với nguồn dài hơn, hãy tạo dạng sóng trong trình chỉnh sửa trước hoặc sử dụng chế độ hình thu nhỏ. Các yêu cầu tiếp theo có thể tái sử dụng dạng sóng đã lưu trong bộ nhớ đệm.

Đầu ra hình ảnh và giới hạn

Đường dẫn hình ảnh phải là các tệp PNG mới trong các thư mục hiện có. Hình ảnh bị giới hạn ở 4096 pixel mỗi trục, tổng cộng 8.388.608 pixel, và 64 mẫu bảng liên hệ. Các yêu cầu vượt quá giới hạn này sẽ thất bại trước khi kết xuất.

Hình ảnh được ghi vào tệp; phản hồi JSON bao gồm đường dẫn và kích thước image_bytes của chúng. Việc kiểm tra chờ hình ảnh hoàn thành, và các yêu cầu lớn có thể chiếm dụng trình chỉnh sửa trong thời gian ngắn.

Xử lý hết thời gian lệnh

Hết thời gian yêu cầu không có nghĩa là thao tác thay đổi thất bại. Sử dụng ID thao tác trong lỗi với operation get ID trước khi thử lại. operation list tìm các thao tác thay đổi gần đây cùng trạng thái, phiên bản và kết quả của chúng. Các thao tác hoàn thành giữ lại kết quả khi đủ nhỏ, bao gồm cả ID đối tượng trả về. Bộ nhớ lưu trữ giới hạn 100 thao tác và 4 MiB, với các phần kết quả riêng lẻ bị bỏ qua trên 256 KiB. Các bản ghi này chỉ tồn tại trong phiên làm việc hiện tại. Chúng không khôi phục dự án sau sự cố hoặc ngăn lệnh lặp lại áp dụng cùng một chỉnh sửa. Các công việc xuất có các lệnh trạng thái/danh sách riêng.