이 Python 스크립트는 YouTube 비디오, 로컬 비디오 파일 또는 기타 생각할 수 있는 비디오 소스에서 고품질 스크린샷을 추출하기 위한 다목적 도구입니다! Loras 또는 체크포인트 교육과 같은 기계 학습 프로젝트를 위한 데이터 세트를 준비하거나 좋아하는 영화에서 완벽한 프레임을 가져오는 데 특히 유용합니다.
requirements.txt
에 나열된 종속성다음 저장소를 복제하세요.
git clone https://github.com/EnragedAntelope/youtube-screenshot-extractor.git
cd youtube-screenshot-extractor
필요한 종속성을 설치합니다.
pip install -r requirements.txt
FFmpeg 설치(키프레임 추출 및 일부 필터에 필요):
(선택 사항) GPU 가속을 위해 PyCUDA를 설치합니다.
pip install pycuda>=2022.1
참고: PyCUDA를 사용하려면 시스템에 CUDA가 설치되어 있어야 합니다. 설치 지침은 PyCUDA 설명서를 참조하세요.
기본 구문:
python youtube-screenshot-script.py [SOURCE] [OPTIONS]
여기서 [SOURCE]
는 YouTube URL이거나 로컬 비디오 파일의 경로일 수 있습니다.
참고: GPU 가속(--use-gpu 옵션)을 사용하려는 경우 PyCUDA가 설치되어 있는지 확인하세요.
YouTube 동영상에서 5초마다 프레임을 추출하여 사용자 정의 폴더에 저장합니다.
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --output my_awesome_screenshots
정말 쉽습니다! 이제 구성 가능한 모든 옵션을 살펴보겠습니다.
--method {interval,all,keyframes,scene}
: 프레임 추출 방법(기본값: 간격)--interval INTERVAL
: 프레임 간 간격(초) (기본값: 5.0, 'interval' 방법에만 사용됨)--quality QUALITY
: 프레임 선택을 위한 품질 임계값(0-100, 기본값: 12.0)--blur BLUR
: 프레임 선택을 위한 흐림 임계값(기본값: 10.0)--detect-watermarks
: 기본 워터마크 감지 활성화--watermark-threshold THRESHOLD
: 워터마크 감지 민감도(0-1, 기본값: 0.8)--max-resolution RESOLUTION
: YouTube 비디오 다운로드의 최대 해상도(예: 720, 1080). 로컬 파일의 경우 무시됩니다.--output OUTPUT
: 사용자 정의 출력 폴더 이름--png
: 프레임을 JPG 대신 PNG로 저장합니다.--disable-parallel
: 프레임 병렬 처리 비활성화--use-gpu
: 가능한 경우 GPU 가속을 사용합니다.--fast-scene
: 장면 감지를 위해 빠른 모드를 사용합니다(덜 정확한 결과).--resume
: 중단된 추출 프로세스를 재개합니다.--thumbnail
: 추출된 프레임의 썸네일 몽타주를 생성합니다.--verbose
: 자세한 로깅 활성화--dry-run
: 실제로 처리하지 않고 수행할 작업을 보여줍니다.--config CONFIG
: 구성 파일에서 설정 로드--gradfun
: gradfun 필터를 적용하여 색상 밴딩을 줄입니다(덜 공격적이며 더 많은 세부 정보를 유지합니다).--deblock
: 압축 아티팩트를 줄이기 위해 디블로킹 필터를 적용합니다.--deband
: 색상 밴딩을 줄이기 위해 밴드 제거 필터를 적용합니다(보다 공격적이며 심각한 밴딩에 더 좋음).로컬 비디오 파일에서 키프레임 추출:
python youtube-screenshot-script.py path/to/your/video.mp4 --method keyframes
사용자 정의 출력 폴더가 있는 YouTube 비디오에서 장면 감지 사용:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --method scene --output my_scene_shots
낮은 품질 임계값 및 PNG 출력을 사용하여 10초마다 프레임을 추출합니다.
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --interval 10 --quality 30 --png
GPU 가속을 사용하고 썸네일 몽타주를 생성합니다.
python youtube-screenshot-script.py path/to/your/video.mp4 --use-gpu --thumbnail
최대 해상도 720p의 YouTube 비디오를 다운로드하고 프레임을 추출하세요.
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --max-resolution 720
후처리 필터를 사용하여 프레임 추출:
python youtube-screenshot-script.py path/to/your/video.mp4 --gradfun --deblock --deband
처리 시간 :
비디오 해상도 :
--max-resolution
옵션을 사용하여 다운로드 품질을 제한하십시오.--max-resolution
옵션은 무시됩니다.출력 : 프레임은 지정된 출력 폴더(또는 비디오 제목 이름을 딴 기본 폴더)에 JPG 또는 PNG 이미지로 저장됩니다.
프레임 파일 이름 : frame_NNNNNN_qXX_bYY[_watermarked].(jpg|png)
형식을 따릅니다. 여기서:
NNNNNN
: 프레임 번호XX
: 품질평가점수(0~99, 높을수록 좋음)YY
: 흐림 점수(숫자가 높을수록 흐림이 덜함을 나타냄)_watermarked
: 워터마크가 감지되면 접미사가 추가됩니다.후처리 필터 :
--dry-run
옵션을 사용하면 실제로 프레임을 저장하지 않고 추출 프로세스를 미리 볼 수 있습니다.--resume
옵션을 사용하십시오.--max-resolution
옵션을 사용하는 것이 좋습니다.--quality 30 --blur 50
)으로 시작하고 필요에 따라 조정합니다.--fast-scene
옵션을 사용하십시오.추출된 프레임 없음 :
--quality 20 --blur 30
).키프레임 추출 문제 :
장면 감지가 매우 느리거나 충돌함 :
--fast-scene
옵션을 사용하십시오.GPU 가속이 작동하지 않음 :
pip install pycuda
).--use-gpu
플래그를 제거하여 CPU 처리로 대체합니다.잘못된 긍정을 생성하는 워터마크 감지 :
--watermark-threshold 0.9
).--detect-watermarks
플래그를 제거하여 워터마크 감지를 비활성화합니다.대용량 비디오의 경우 프로세스가 예기치 않게 종료됩니다 .
--resume
옵션을 사용하십시오.품질이 낮거나 출력이 흐릿함 :
후처리 필터가 작동하지 않음 :
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
기여를 환영합니다! 언제든지 Pull Request를 제출해 주세요.