video_editing_poc/src/main/resources/application.yml

79 lines
5.1 KiB
YAML

video-clipping:
folder-scheduler:
enabled: ${FOLDER_SCHEDULER_ENABLED:true}
input-directory: ${FOLDER_SCHEDULER_INPUT_DIRECTORY:./input/source}
output-directory: ${FOLDER_SCHEDULER_OUTPUT_DIRECTORY:./output/clips}
processed-directory: ${FOLDER_SCHEDULER_PROCESSED_DIRECTORY:./input/processed}
rejected-directory: ${FOLDER_SCHEDULER_REJECTED_DIRECTORY:./input/rejected}
working-directory: ${FOLDER_SCHEDULER_WORKING_DIRECTORY:./input/working}
poll-interval-ms: ${FOLDER_SCHEDULER_POLL_INTERVAL_MS:5000}
segment-duration-seconds: 8
ffmpeg-binary: ffmpeg
ffprobe-binary: ffprobe
output-container: mp4
exact-preset: veryfast
preserve-input-quality: ${FOLDER_SCHEDULER_PRESERVE_INPUT_QUALITY:true}
editing:
enabled: ${VIDEO_EDITING_ENABLED:true}
project-directory: ${VIDEO_EDITING_PROJECT_DIRECTORY:./output/edit-projects}
highlight-project-directory: ${VIDEO_EDITING_HIGHLIGHT_PROJECT_DIRECTORY:./output/highlight-projects}
ffmpeg-binary: ${VIDEO_EDITING_FFMPEG_BINARY:ffmpeg}
ffprobe-binary: ${VIDEO_EDITING_FFPROBE_BINARY:ffprobe}
thumbnail-count-per-clip: ${VIDEO_EDITING_THUMBNAIL_COUNT_PER_CLIP:5}
contact-sheet-columns: ${VIDEO_EDITING_CONTACT_SHEET_COLUMNS:5}
proxy-enabled: ${VIDEO_EDITING_PROXY_ENABLED:true}
proxy-width: ${VIDEO_EDITING_PROXY_WIDTH:640}
scene-detection-threshold: ${VIDEO_EDITING_SCENE_DETECTION_THRESHOLD:0.35}
minimum-scene-duration-seconds: ${VIDEO_EDITING_MINIMUM_SCENE_DURATION_SECONDS:1.0}
silence-threshold-db: ${VIDEO_EDITING_SILENCE_THRESHOLD_DB:-35.0}
silence-minimum-duration-seconds: ${VIDEO_EDITING_SILENCE_MINIMUM_DURATION_SECONDS:0.5}
target-duration-seconds: ${VIDEO_EDITING_TARGET_DURATION_SECONDS:60}
output-width: ${VIDEO_EDITING_OUTPUT_WIDTH:1920}
output-height: ${VIDEO_EDITING_OUTPUT_HEIGHT:1080}
output-frame-rate: ${VIDEO_EDITING_OUTPUT_FRAME_RATE:30}
audio-sample-rate: ${VIDEO_EDITING_AUDIO_SAMPLE_RATE:48000}
video-bitrate: ${VIDEO_EDITING_VIDEO_BITRATE:12000k}
audio-bitrate: ${VIDEO_EDITING_AUDIO_BITRATE:192k}
voiceover-provider: ${VIDEO_EDITING_VOICEOVER_PROVIDER:noop}
loudness-target-i: ${VIDEO_EDITING_LOUDNESS_TARGET_I:-16.0}
loudness-true-peak: ${VIDEO_EDITING_LOUDNESS_TRUE_PEAK:-1.5}
loudness-range: ${VIDEO_EDITING_LOUDNESS_RANGE:11.0}
music-ducking-threshold: ${VIDEO_EDITING_MUSIC_DUCKING_THRESHOLD:0.045}
music-ducking-ratio: ${VIDEO_EDITING_MUSIC_DUCKING_RATIO:8.0}
music-ducking-attack-ms: ${VIDEO_EDITING_MUSIC_DUCKING_ATTACK_MS:20}
music-ducking-release-ms: ${VIDEO_EDITING_MUSIC_DUCKING_RELEASE_MS:250}
assets:
music-folder: ${VIDEO_EDITING_ASSETS_MUSIC_FOLDER:./input/highlights/assets/music}
sfx-folder: ${VIDEO_EDITING_ASSETS_SFX_FOLDER:./input/highlights/assets/sfx}
fonts-folder: ${VIDEO_EDITING_ASSETS_FONTS_FOLDER:./input/highlights/assets/fonts}
luts-folder: ${VIDEO_EDITING_ASSETS_LUTS_FOLDER:./input/highlights/assets/luts}
voiceover-folder: ${VIDEO_EDITING_ASSETS_VOICEOVER_FOLDER:./output/highlight-projects/_voiceover-cache}
visual-analysis:
provider: ${VIDEO_EDITING_VISUAL_ANALYSIS_PROVIDER:local-cv} #local-cv or heuristic
endpoint: ${VIDEO_EDITING_VISUAL_ANALYSIS_ENDPOINT:http://127.0.0.1:8091/v1/analyze-visuals}
timeout-ms: ${VIDEO_EDITING_VISUAL_ANALYSIS_TIMEOUT_MS:30000}
fallback-to-heuristic: ${VIDEO_EDITING_VISUAL_ANALYSIS_FALLBACK_TO_HEURISTIC:true}
local-director:
enabled: ${VIDEO_EDITING_LOCAL_DIRECTOR_ENABLED:true}
source-directory: ${VIDEO_EDITING_LOCAL_DIRECTOR_SOURCE_DIRECTORY:./input/editing/source}
working-directory: ${VIDEO_EDITING_LOCAL_DIRECTOR_WORKING_DIRECTORY:./input/editing/working}
processed-directory: ${VIDEO_EDITING_LOCAL_DIRECTOR_PROCESSED_DIRECTORY:./input/editing/processed}
rejected-directory: ${VIDEO_EDITING_LOCAL_DIRECTOR_REJECTED_DIRECTORY:./input/editing/rejected}
poll-interval-ms: ${VIDEO_EDITING_LOCAL_DIRECTOR_POLL_INTERVAL_MS:5000}
director-prompt-file-name: ${VIDEO_EDITING_LOCAL_DIRECTOR_PROMPT_FILE_NAME:ai-director-prompt.md}
expected-plan-file-name: ${VIDEO_EDITING_LOCAL_DIRECTOR_EXPECTED_PLAN_FILE_NAME:edit-plan.json}
auto-render-when-plan-appears: ${VIDEO_EDITING_LOCAL_DIRECTOR_AUTO_RENDER:false}
require-approval-before-render: ${VIDEO_EDITING_LOCAL_DIRECTOR_REQUIRE_APPROVAL:true}
approval-file-name: ${VIDEO_EDITING_LOCAL_DIRECTOR_APPROVAL_FILE_NAME:approved.flag}
highlight-scheduler:
enabled: ${VIDEO_EDITING_HIGHLIGHT_SCHEDULER_ENABLED:true}
source-directory: ${VIDEO_EDITING_HIGHLIGHT_SCHEDULER_SOURCE_DIRECTORY:./input/highlights/source}
working-directory: ${VIDEO_EDITING_HIGHLIGHT_SCHEDULER_WORKING_DIRECTORY:./input/highlights/working}
processed-directory: ${VIDEO_EDITING_HIGHLIGHT_SCHEDULER_PROCESSED_DIRECTORY:./input/highlights/processed}
rejected-directory: ${VIDEO_EDITING_HIGHLIGHT_SCHEDULER_REJECTED_DIRECTORY:./input/highlights/rejected}
poll-interval-ms: ${VIDEO_EDITING_HIGHLIGHT_SCHEDULER_POLL_INTERVAL_MS:5000}
logging:
level:
org.example.videoclips.folder: ${FOLDER_SCHEDULER_LOG_LEVEL:INFO}