1
0
Fork 0
Everything2Everything/packaging/Package.appxmanifest
Yun Chan 47600d2eb5 fix: mp4 변환 멈춤 해결 — 8K HEVC 코덱 + 동일포맷 재인코딩 + 종료상태
증상: 8K(7680x4320) HEVC 11분 6.76GB mp4 변환이 멈춤.

근본 원인 2가지:
1. mp4→mp4(같은 형식)이 그래프 self-edge 부재로 Skip 처리되고,
   QuickProgressWindow가 '전부 건너뜀' 종료 상태를 처리 안 해 멈춘 듯 보임.
2. 강제하던 h264_nvenc가 4096px 초과(8K)를 인코딩 못 해 즉시 실패 →
   CPU libx264 8K 폴백이 사실상 무한정 소요(진짜 멈춤).

수정:
- FfmpegProvider: 해상도별 코덱 — videoWidth>4096(8K 등)은 hevc_nvenc(GPU)
  →libx265(CPU)로, 이하는 h264_nvenc→libx264. 코덱 강제는 mp4/mkv/mov에만
  적용하고 webm/avi/gif는 컨테이너 기본 코덱(vp9 등) 유지.
- FfmpegProvider: 비디오/오디오 동일포맷 self-edge 추가(mp4→mp4 등 재압축).
  gif는 제외 — 이미지로도 다뤄져 ffmpeg 미설치 시 Skip→하드실패 회귀 방지.
- QuickProgressWindow.Finish: 성공·실패 없이 전부 건너뜀인 종료 상태를 명확히 안내.

검증: 실제 8K HEVC 클립으로 mp4→mp4 변환 → hevc_nvenc로 정상 인코딩,
28.3MB→2.1MB(93% 압축). 전체 38개 단위테스트 통과(적대적 리뷰 2건 반영).
Package 1.0.3.0.
2026-06-01 22:25:12 +09:00

243 lines
11 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
xmlns:desktop5="http://schemas.microsoft.com/appx/manifest/desktop/windows10/5"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
IgnorableNamespaces="uap rescap desktop desktop4 desktop5 com">
<Identity
Name="Everything2Everything.YunChan"
Publisher="CN=Everything2EverythingDev"
Version="1.0.3.0"
ProcessorArchitecture="x64" />
<Properties>
<DisplayName>Everything2Everything</DisplayName>
<PublisherDisplayName>YunChan</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19041.0" MaxVersionTested="10.0.26220.0" />
</Dependencies>
<Resources>
<Resource Language="ko-KR" />
<Resource Language="en-US" />
</Resources>
<Applications>
<Application Id="Everything2Everything"
Executable="Everything2Everything.exe"
EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements
DisplayName="Everything2Everything"
Description="이미지·PDF·문서·HTML 양방향 변환 매트릭스"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" />
</uap:VisualElements>
<Extensions>
<!-- COM Surrogate Server: hosts the IExplorerCommand handlers -->
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:SurrogateServer DisplayName="Everything2Everything Shell Extension">
<!-- Root cascade ("Everything2Everything으로 변환" + 11 sub-items) -->
<com:Class Id="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"
Path="Everything2Everything.Shell.dll"
ThreadingModel="STA" />
<!-- Legacy non-cascade verbs (kept for backward compat) -->
<com:Class Id="801B2DD3-632C-4731-9510-AEAE09345264"
Path="Everything2Everything.Shell.dll"
ThreadingModel="STA" />
<com:Class Id="CEBA1DB7-9175-4DF6-A362-490DEA49B598"
Path="Everything2Everything.Shell.dll"
ThreadingModel="STA" />
</com:SurrogateServer>
</com:ComServer>
</com:Extension>
<!-- File Explorer context menu registrations -->
<desktop4:Extension Category="windows.fileExplorerContextMenus">
<desktop4:FileExplorerContextMenus>
<!-- 이미지 -->
<desktop5:ItemType Type=".png">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".jpg">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".jpeg">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".gif">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".bmp">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".tif">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".tiff">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".webp">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".avif">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".psd">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- HEIC/HEIF -->
<desktop5:ItemType Type=".heic">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".heif">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- RAW -->
<desktop5:ItemType Type=".dng">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".nef">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".cr2">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".cr3">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".arw">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".raf">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".orf">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".rw2">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".srw">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".pef">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- PDF -->
<desktop5:ItemType Type=".pdf">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- DOCX -->
<desktop5:ItemType Type=".docx">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".doc">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- HTML -->
<desktop5:ItemType Type=".html">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".htm">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- HWP / HWPX -->
<desktop5:ItemType Type=".hwp">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".hwpx">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- 영상 -->
<desktop5:ItemType Type=".mp4">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".webm">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".mkv">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".mov">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".avi">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- 오디오 -->
<desktop5:ItemType Type=".mp3">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".aac">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".m4a">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".opus">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".ogg">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".flac">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".wav">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- 데이터 -->
<desktop5:ItemType Type=".csv">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".json">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".xlsx">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<!-- 벡터 / 마크다운 / 텍스트 -->
<desktop5:ItemType Type=".svg">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".md">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".markdown">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
<desktop5:ItemType Type=".txt">
<desktop5:Verb Id="Convert" Clsid="F1A2B3C4-D5E6-4789-9A01-2B3C4D5E6F70"/>
</desktop5:ItemType>
</desktop4:FileExplorerContextMenus>
</desktop4:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>