타임스탬프는 범용 프레임 번호가 아닙니다.
비디오 플레이어는 시간을 초 단위로 표시합니다. 미디어 요소의 현재 시간을 설정하면 브라우저가 타임라인에서 해당 지점을 검색하도록 요청합니다. 그런 다음 브라우저는 요청된 시간 근처에 사용 가능한 프레임을 표시하기에 충분한 데이터를 디코딩합니다. HTMLMediaElement currentTime 문서는 검색 인터페이스를 정의하지만 모든 코덱과 컨테이너에서 안정적인 소스 프레임 인덱스를 약속하지는 않습니다.
일정한 30FPS 미디어의 경우 하나의 명목 프레임은 약 1/30초, 즉 0.0333초 동안 지속됩니다. 이는 1/30초 넛지를 직관적으로 만듭니다. 24, 25, 29.97, 60 또는 가변 프레임 속도 미디어의 경우 동일한 넛지는 작은 시간 단계에 불과합니다. 둘 이상의 프리젠테이션 프레임만큼 이동하거나, 동일한 표시된 프레임에 놓이거나, 타임스탬프 간격이 평균과 다른 프레임을 노출할 수 있습니다.
따라서 VideoToImg는 모든 소스에 대해 하나의 원본 프레임을 약속하는 대신 제어를 1/30초 넛지로 설명합니다. 이러한 구별은 재현 가능한 QA, 과학적 관찰, 법적 증거 및 애니메이션 타이밍에 중요합니다.
키프레임이 검색에 영향을 미치는 이유
대부분의 배달 비디오는 시간에 따라 압축됩니다. 키프레임에는 자체 포함된 그림이 포함되어 있는 반면, 다음 프레임 간은 이전에 디코딩된 이미지와 관련된 변경 사항을 설명하는 경우가 많습니다. 37.4초에 프레임을 표시하려면 디코더는 이전 키프레임을 찾아서 요청된 프레젠테이션 시간에 도달할 때까지 앞으로 디코딩해야 할 수 있습니다.
희소 키프레임은 특히 길거나 고해상도 파일에서 임의 검색 속도를 느리게 만들 수 있습니다. 또한 일반적인 앞으로 재생에서 숨기는 브라우저 또는 파일 인덱스 문제가 노출될 수도 있습니다. MDN 비디오 코덱 가이드에서는 프레임 간 압축 및 주기적인 키프레임이 재생 및 아티팩트 복구에 어떤 영향을 미치는지 설명합니다.
지연된 검색은 도구가 파일을 업로드했다는 증거가 아닙니다. 로컬 파일은 현재 탭의 브라우저 미디어 API에 의해 계속 디코딩됩니다. 디코딩 시간은 소스 구조, 장치, 코덱 구현 및 유용한 랜덤 액세스 포인트로부터의 거리에 따라 달라집니다.
반복 가능한 정확한 프레임 워크플로 사용
- 장면을 광범위하게 찾습니다. 동작 근처의 타임스탬프를 스크러빙하거나 입력한 다음 미리보기가 업데이트될 때까지 기다립니다.
- 양쪽 방향을 검사합니다. 여러 개의 작은 시간 단계를 통해 앞뒤로 조금씩 움직입니다. 피사체 위치, 초점, 모션 블러, 캡션, 인터페이스 상태를 비교하세요.
- 미디어 시간을 기록하세요. 내보낸 이미지나 리뷰 노트에 표시된 타임스탬프를 유지하세요. 파일 이름만으로는 충분한 컨텍스트를 보존할 수 없습니다.
- 먼저 소스 너비로 내보냅니다. 최종 사용 시 알려진 디스플레이 크기가 있는 경우에만 축소합니다. 크기를 조정해도 나중에 누락된 세부정보를 복구할 수 없습니다.
- 픽셀 주변의 출력을 선택합니다. PNG는 추가적인 손실이 있는 정지 이미지 단계를 방지합니다. JPG는 사진 장면에 적합합니다. WebP는 최신 웹 전달에 유용합니다.
- 중요한 증거를 독립적으로 확인하세요. 브라우저 스크린샷 도구는 시각적 선택에 적합하며 정확한 프레임 ID와 프레젠테이션 타임스탬프를 보고하는 포렌식 디코더를 대체하는 것이 아닙니다.
고정 프레임 속도와 가변 프레임 속도에는 다른 언어가 필요합니다.
고정 프레임 속도 비디오는 균일한 간격의 프레임을 목표로 하지만 29.97과 같은 일반적인 속도에는 여전히 정확하고 합리적인 타이밍이 필요합니다. 가변 프레임 속도 비디오를 사용하면 프레젠테이션 지속 시간을 변경할 수 있습니다. 화면 녹화, 회의 도구 및 전화는 가변 타이밍을 사용하여 콘텐츠 또는 캡처 조건에 적응할 수 있습니다.
따라서 타임스탬프를 광고된 평균 FPS로 나누면 신뢰할 수 있는 프레임 번호가 아닌 편리한 추정치를 생성할 수 있습니다. 두 프레임의 지속 시간이 동일하지 않을 수 있으며, 중복되거나 삭제된 프레젠테이션은 시간과 순서 위치 간의 관계에 영향을 미칠 수 있습니다.
워크플로에 '인코딩된 스트림의 프레임 1,248'과 같은 설명이 필요한 경우 패킷 및 프레임 타임스탬프를 노출하는 도구를 사용하여 파일을 검사하세요. 작업이 '41.2초 주변의 가장 선명한 이미지 저장'인 경우 일반적으로 브라우저 시각적 선택이 더 직접적인 방법입니다.
잘못되었거나 검은색이거나 오래된 프레임을 진단합니다.
컨테이너가 약간 더 긴 기간을 보고하더라도 요청된 시간이 마지막 디코딩 가능한 프레임을 초과하면 파일 끝 부분에 검은색 이미지가 발생할 수 있습니다. 조금 더 일찍 이동한 후 다시 시도하세요. 검색 후 오래된 이미지는 디코딩이 완료되지 않았음을 나타낼 수 있습니다. 전환 중에 캡처하는 대신 미리보기 상태를 기다립니다.
파일 하나만 실패하면 해당 파일의 코덱, 인덱스, 타임스탬프 또는 손상된 미디어 데이터를 의심해 보세요. 한 브라우저에서 모든 파일이 실패하는 경우 현재 브라우저 버전과 알려진 작은 H.264 MP4 또는 WebM 파일을 테스트하십시오. 다운로드한 로컬 복사본이 작동하는 동안 직접 URL이 실패하는 경우 원본 간 권한 또는 원격 응답이 경계일 가능성이 높습니다.
코덱 및 컨테이너 가이드는 더 자세한 진단 순서를 제공합니다. 개인 미디어를 보내지 않고 재현 가능한 문제를 hello@videotoimg.com으로 보고하세요.
이미지 내보내기가 변경할 수 있는 것과 변경할 수 없는 것이 무엇인지 알아보세요.
브라우저가 프레임을 표시한 후 도구는 디코딩된 이미지를 캔버스에 그리고 브라우저에 이미지 블롭을 인코딩하도록 요청합니다. 캔버스 toBlob 문서에서는 이 스틸 이미지 인코딩 단계를 설명합니다. PNG, JPG 또는 WebP를 변경하면 이미 디코딩된 소스 세부정보가 아닌 새 이미지 파일에 영향을 미칩니다.
PNG는 모션 블러, 초점 오류, 크로마 서브샘플링, 낮은 비트 전송률 또는 이전 비디오 압축을 되돌릴 수 없습니다. JPG 품질은 추가적인 JPEG 인코딩 장단점만 제어합니다. 최대 너비가 작을수록 픽셀 크기와 메모리 또는 파일 무게가 줄어들지만 품질 업그레이드로 간주하기보다는 의도한 디스플레이에 맞게 선택해야 합니다.
시각적 선택이 목표인 경우 정확한 프레임 추출기를 연 다음 대규모 배치를 내보내기 전에 이미지 형식 가이드를 사용하세요.