Duration은 어떤 것이 지속되는 시간을 나타냅니다. 미디어 파일에서 duration은 전체 재생 시간을 의미합니다. 비디오 duration은 동영상이 처음부터 끝까지 재생되는 시간이고, 오디오 duration은 노래나 녹음 파일에 대해 같은 의미입니다.
이 숫자는 보통 미디어 플레이어에서 전체 시간으로 표시됩니다. 메타데이터에서는 같은 정보가 Duration라는 필드에 들어 있습니다.
어떤 파일에 포함되어 있는지
Duration은 시간이 흐르며 재생되는 파일, 즉 오디오 및 비디오 파일에 있습니다. 일반적으로 정지 사진과 텍스트 문서는 duration 필드를 가지지 않습니다.
애니메이션 이미지는 예외적인 경우입니다. GIF 파일은 각 프레임의 지연 시간만 저장하고 전체 시간을 저장하지 않습니다. 그래도 ExifTool은 애니메이션을 한 번 재생하는 Duration을 보고합니다.
값이 어디에서 오는지
일부 형식은 길이를 직접 저장합니다. 다른 형식은 길이를 계산하는 데 사용하는 값들을 저장합니다.
- MP4 및 MOV: 무비 헤더에 time scale과 duration이 저장됩니다. time scale은 초당 시간 단위 수이고, duration은 이 단위의 개수를 셉니다.
- MKV 및 WebM: 세그먼트 정보에 선택적인
Duration요소를 틱(tick) 단위로 저장할 수 있습니다. 기본적으로 틱 1개는 1밀리초입니다. - MP3: ID3 태그에는 길이를 밀리초 단위로 저장하는
TLEN프레임이 있을 수 있습니다. ExifTool은 파일 크기와 비트 전송률 같은 다른 값으로 길이를 계산합니다. - FLAC: 파일에 전체 샘플 수와 샘플 레이트를 저장합니다. 소프트웨어는 이 두 값을 사용해 길이를 계산하며, 합계가
0이면 길이를 알 수 없다는 뜻입니다. - WAV: ExifTool은 초당 평균 바이트 수와 파일 크기에서 길이를 계산합니다.
값이 어떻게 표시되는지
같은 길이라도 파일을 읽는 프로그램에 따라 다른 형태로 표시될 수 있습니다.
00:05:15: 시, 분, 초입니다. 이 파일은 5분 15초 동안 재생됩니다.15.23 s: 초 단위이며, 단위가 함께 표시됩니다.200.541000: 단위가 없는 숫자입니다. FFmpeg 프로젝트의 ffprobe 프로그램은 duration을 이 형식으로, 소수점 이하 6자리까지 출력합니다. 이 숫자는 200.541초, 약 3분 21초를 의미합니다.N/A: 기본 출력 형식에서 duration이 없으면 ffprobe는 이렇게 출력합니다. JSON 및 XML 출력 형식에서는 duration 필드 자체를 생략합니다.
단위가 없는 숫자가 항상 초를 의미하는 것은 아닙니다. TLEN 프레임은 밀리초를 세고, ffprobe의 duration_ts 값은 스트림의 time base 단위를 셉니다. 이 숫자가 어느 필드에서 나왔는지 확인하세요.
프로그램마다 재생 시간이 다르게 표시되는 이유
서로 다른 프로그램이 같은 파일에 대해 서로 다른 duration을 표시할 수 있으며, 둘 다 틀리지 않을 수 있습니다. 그 이유는 다음 4가지입니다.
- 반올림: 초 단위만 표시하는 플레이어는
200.541을 올림 또는 내림으로 반올림합니다. - 별도 트랙: 영상과 음성은 각각 별도의 트랙을 가지며, 각 트랙마다 자체 duration이 있습니다. MOV 파일에서는 무비 duration이 가장 긴 트랙에 맞춰집니다.
- 시작 시각: 각 스트림마다 자체 시작 시각이 있을 수 있습니다. FFmpeg는 가장 이른 시작부터 가장 늦은 종료까지를 기준으로 측정하므로, 늦게 시작하는 스트림이 전체 시간을 더 길게 만들 수 있습니다.
- 추정값: 파일에 비트 전송률은 있지만 duration은 없을 수 있습니다. 이 경우 FFmpeg는 비트 전송률과 파일 크기에서 duration을 추정하고, 결과가 정확하지 않을 수 있다고 경고합니다.
왜 중요한지
Duration을 보면 재생하지 않고도 파일을 확인할 수 있습니다. 5분 15초짜리 클립을 기대했는데 15.23 s가 보인다면, 이 파일은 예상한 파일이 아닐 수 있습니다.
Duration은 다른 값들과도 연결됩니다. FFmpeg는 파일 크기와 duration에서 전체 비트 전송률을 계산할 수 있습니다.