Files

155 lines
7.1 KiB
INI

# >>> SCREENRTSP AUTO-MANAGED INSTALLATION ENVIRONMENT >>>
# 이 부분은 실제 컴퓨터에서 실행한 후 자동 기록되며 사용자가 직접 수정하지 않습니다.
# 설정값으로 해석되지 않으며 송출 동작을 결정하는 입력으로 사용되지 않습니다.
# CheckedAt=
# EnvironmentFingerprint=
# GPU=
# NvidiaNvencApi=
# NvidiaNvencRequiredApi=
# NvidiaNvencSupport=
# AmdAmfSupport=
# IntelQsvSupport=
# SelectedHardwareEncoder=
# FFmpegVersion=
# FFmpegBuild=
# FFmpegExecutableSha256=
# FFmpegDownloadSource=
# FFmpegArchiveSha256Verification=
# MediaMTXVersion=
# MediaMTXExecutableSha256=
# MediaMTXDownloadSource=
# MediaMTXArchiveSha256Verification=
# CompatibilityTest=
# <<< SCREENRTSP AUTO-MANAGED INSTALLATION ENVIRONMENT <<<
# ============================================================
# RTSP Watchdog 설정
# ============================================================
#
# 주석/설명 규칙
# - 줄의 첫 문자가 #, ;, // 중 하나이면 설명으로 처리하고 건너뜁니다.
# - 앞쪽 공백 뒤에 #, ;, //가 있어도 설명으로 처리합니다.
# - 값 오른쪽에는 주석을 붙이지 마십시오. 설명은 별도 줄에 작성합니다.
# - 경로와 장치명은 따옴표 없이 적어도 됩니다.
# - 기능 스위치는 1=사용, 0=사용 안 함입니다.
# - 명령줄에서 지정한 값은 이 파일보다 우선합니다.
; 세미콜론으로 시작하는 이 줄도 설명으로 처리됩니다.
// 슬래시 두 개로 시작하는 이 줄도 설명으로 처리됩니다.
#
# 실행
# 기본 실행은 즉시 숨김 백그라운드 worker를 시작하고 현재 창으로 돌아옵니다.
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1
# 진단 중 콘솔 로그를 직접 보려는 경우에만 -Foreground를 사용합니다.
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -Foreground
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -ShowConfiguration
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -InstallDependenciesOnly
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -RunSimulationTests
#
# 별도 설정 파일 사용
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -ConfigPath .\config.ini
#
# 자동 실행 등록 / 상태 확인 / 즉시 실행 / 제거
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -InstallStartup
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -StartupStatus
# Start-ScheduledTask -TaskName "Screen RTSP Watchdog"
# Stop-ScheduledTask는 1분 이내 자동 복구되므로 완전 중지는 -UninstallStartup을 사용합니다.
# powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\screen-rtsp.ps1 -UninstallStartup
#
# GPU와 FFmpeg 지원 확인
# Get-CimInstance Win32_VideoController | Select-Object Name,DriverVersion,Status
# .\ffmpeg.exe -hide_banner -filters | Select-String ddagrab
# .\ffmpeg.exe -hide_banner -encoders | Select-String 'h264_(nvenc|amf|qsv)'
#
# 모니터 확인
# Add-Type -AssemblyName System.Windows.Forms
# [System.Windows.Forms.Screen]::AllScreens | Select-Object DeviceName,Primary,Bounds
#
# 오디오 장치 확인
# Get-PnpDevice -Class AudioEndpoint | Select-Object Status,FriendlyName,InstanceId
# Get-CimInstance Win32_SoundDevice | Select-Object Name,Status,PNPDeviceID
# .\ffmpeg.exe -hide_banner -list_devices true -f dshow -i dummy
#
# 네트워크 확인
# Get-NetAdapter | Select-Object Name,InterfaceDescription,ifIndex,Status,LinkSpeed
# Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias,InterfaceIndex,IPAddress
# Get-NetRoute -AddressFamily IPv4 -DestinationPrefix 0.0.0.0/0
# ping.exe -S 192.168.50.34 192.168.50.1
#
# RTSP 포트와 수신 시험
# Get-NetTCPConnection -LocalPort 8554 -State Listen
# .\ffmpeg.exe -hide_banner -rtsp_transport tcp -i rtsp://127.0.0.1:8554/monitor1 -t 5 -f null NUL
[General]
# 생성할 monitor 채널 수. 이 수만큼 캡처 가능한 활성 모니터가 필요합니다.
ChannelCount=2
# 모든 조건이 정상인 상태로 유지되어야 하는 시간입니다.
StableTimeSec=3
# 모니터, NIC, GPU, 오디오 상태 확인 주기입니다.
PollIntervalSec=1
[Video]
# 화면 캡처 및 RTSP 영상 프레임률입니다. 1~240 범위에서 설정합니다.
FrameRate=20
# IDR/GOP 간격(초). 20fps에서 2초이면 GOP는 40프레임입니다.
GopSeconds=2
Bitrate=8000k
# 앞에 있는 GPU부터 3초 이상 실제 인코딩, 주기 IDR 및 2채널 RTSP 수신을 시험합니다.
EncoderPriority=NVIDIA,AMD,Intel
[Audio]
# 시스템 재생음 및 RTSP AAC 트랙: 1=사용, 0=영상만 송출
Enabled=1
# 마이크를 자동 선택해 시스템 재생음과 혼합: 1=사용, 0=시스템 재생음만 사용
# Enabled=0이면 이 설정과 관계없이 모든 오디오 입력을 사용하지 않습니다.
MicrophoneEnabled=1
Bitrate=192k
# 실제 신호가 있는 출력 장치와 마이크를 판별할 peak 최소값입니다. 범위는 0.0~1.0입니다.
SignalThreshold=0.0005
[Network]
# 비워 두면 IPv4 기본 경로의 활성 NIC를 자동 선택합니다.
# 특정 장치를 강제하려면 Get-NetAdapter의 InterfaceDescription을 그대로 적습니다.
NicDescription=
# 비워 두면 Source IP ping 검사를 하지 않습니다.
# 예: 192.168.50.1
HealthTarget=
[RTSP]
Port=8554
# 실행 중인 FFmpeg PID뿐 아니라 각 RTSP 채널에서 실제 영상 1프레임이
# 디코딩되는지를 검사합니다. 모든 채널 검사는 동시에 수행됩니다.
HealthCheckIntervalSec=10
HealthTimeoutSec=5
# 연속 실패가 이 횟수에 도달하면 전체 AV 파이프라인을 재시작합니다.
HealthFailureThreshold=2
# FFmpeg를 시작한 직후 장치와 RTSP Publisher가 준비될 때까지 검사를 유예합니다.
# 장치 초기화가 느린 PC에서 너무 짧게 설정하면 정상 시작 중 재시작 루프가 발생할 수 있습니다.
StartupGraceSec=45
[Dependencies]
# ffmpeg.exe 또는 mediamtx.exe가 없을 때 자동 다운로드: 1=사용, 0=오류 후 종료
AutoInstall=1
# Gyan FFmpeg Windows essentials ZIP과 게시된 SHA-256입니다.
FFmpegUrl=https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
FFmpegSha256Url=https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip.sha256
# 최신 빌드의 NVENC API가 현재 NVIDIA 드라이버보다 높을 때 시험할 2026-05-31 BtbN 호환 후보입니다.
# FFmpeg 공식 다운로드 페이지가 안내하는 Windows 빌드이며 게시된 checksums.sha256을 검증합니다.
FFmpegFallbackUrl=https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-05-31-13-22/ffmpeg-n8.1.1-9-g58d4114d36-win64-gpl-8.1.zip
FFmpegFallbackSha256Url=https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-05-31-13-22/checksums.sha256
# MediaMTX v1.21.1 공식 Windows amd64 ZIP과 GitHub Release SHA-256입니다.
MediaMTXUrl=https://github.com/bluenviron/mediamtx/releases/download/v1.21.1/mediamtx_v1.21.1_windows_amd64.zip
MediaMTXSha256=faa97974861eb75a68b5aa326c78e7e7a6f670b5ef191bace78e715130381f23