# >>> 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=30 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