Этот инструмент является дополнением интерфейса командной строки с открытым исходным кодом к Smart Media Cutter.
smartcut
может обрезать видеофайлы во многих различных форматах и кодеках с минимальной перекодировкой вокруг точек обрезки (так называемая «умная обрезка»).
Это означает, что вы можете разрезать даже длинные видеофайлы за считанные секунды!
Напротив, Smart Media Cutter — это полнофункциональный линейный видеоредактор с гораздо большим количеством функций, таких как: простой в использовании графический интерфейс, редактирование на основе расшифровки (редактирование видео как текстовых документов), автоматическая обрезка тишины, экспорт временной шкалы в такие редакторы, как Resolve & Premiere и щедрый бесплатный уровень.
smartcut
перекодирует только точки обрезки, сохраняя большую часть исходного качества видео.Получите встроенные двоичные файлы для Windows и Linux из выпусков.
Для установки из исходного кода:
# Clone this repository:
git clone https://github.com/skeskinen/smartcut.git
cd smartcut
# Create python virtual environment:
python -m venv .venv
source .venv/bin/activate
# Install the required dependencies:
pip install -r requirements.txt
# Run:
python ./smartcut input.mp4 output.mp4 --keep 10,20,40,50
CLI требует пути к входным и выходным файлам в качестве позиционных аргументов. Вы можете указать сегменты, которые нужно сохранить или вырезать, используя параметры --keep
или --cut
.
Сохраняйте определенные сегменты :
smartcut.exe input.mp4 output.mp4 --keep 10,20,40,50
При этом сохраняются сегменты от 10 до 20 и от 40 до 50.
Вырезать определенные сегменты :
smartcut.exe input.mp4 output.mp4 --cut 30,40,01:00,01:10
Это вырезает сегменты от 30 до 40 и от 1 до 1 минуты 10 секунд, сохраняя остальные.
Укажите уровень журнала :
smartcut.exe input.mp4 output.mp4 --keep 10,20 --log-level info
По умолчанию все звуковые дорожки включены с настройками кодека сквозной передачи. При необходимости это можно изменить, изменив AudioExportInfo
в скрипте.
Вклады приветствуются! Весь код будет лицензирован по лицензии MIT.
Любые изменения также должны работать с приложением с графическим интерфейсом с закрытым исходным кодом, поэтому, пожалуйста, согласуйте со мной, если вы хотите внести существенные изменения. Большую часть времени вы можете найти меня в дискорде.
У нас есть хорошее тестовое покрытие для различных видео и аудио форматов. Видеотесты проверяют, что значения пикселей не изменяются. При тестировании звука сложнее проверить, совпадает ли выходной сигнал с входным, но мы стараемся изо всех сил, проверяя корреляцию ввода и вывода, а также абсолютную разницу.
Некоторые тесты зависят от компонентов приложения с графическим интерфейсом, которые не имеют открытого исходного кода. Эти тесты отключены.
Обычный тестовый запуск выглядит так:
Skipping smc tests
test_h264_cut_on_keyframes: PASS
test_h264_smart_cut: PASS
test_h264_24_fps_long: PASS
test_h264_1080p: PASS
test_h264_multiple_cuts: PASS
test_h264_profile_baseline: PASS
test_h264_profile_main: PASS
test_h264_profile_high: PASS
test_h264_profile_high10: PASS
test_h264_profile_high422: PASS
test_h264_profile_high444: PASS
test_mp4_cut_on_keyframe: PASS
test_mp4_smart_cut: PASS
test_mp4_to_mkv_smart_cut: PASS
test_mkv_to_mp4_smart_cut: PASS
test_vp9_smart_cut: PASS
test_vp9_profile_1: PASS
test_av1_smart_cut: PASS
test_avi_smart_cut: PASS
test_flv_smart_cut: PASS
test_mov_smart_cut: PASS
test_wmv_smart_cut: PASS
test_mpg_cut_on_keyframes: PASS
test_mpg_smart_cut: PASS
test_m2ts_mpeg2_smart_cut: PASS
test_m2ts_h264_smart_cut: PASS
test_ts_smart_cut: PASS
test_night_sky: PASS
test_night_sky_to_mkv: PASS
test_sunset: PASS
test_h265_cut_on_keyframes: PASS
test_h265_smart_cut: PASS
test_h265_smart_cut_large: PASS
test_mp4_h265_smart_cut: PASS
test_vertical_transform: PASS
x265 [warning]: Source height < 720p; disabling lookahead-slices
x265 [warning]: Source height < 720p; disabling lookahead-slices
test_video_recode_codec_override: PASS
test_vorbis_passthru: PASS
test_mkv_with_video_and_audio_passthru: PASS
test_mp3_passthru: PASS
test_seeking: PASS
Tests ran in 153.6s