디렉터리에 있는 비디오 파일의 총 재생 시간을 몇 시간 단위로 가져옵니다.

디렉터리에 있는 비디오 파일의 총 재생 시간을 몇 시간 단위로 가져옵니다.

기반:디렉터리에 있는 비디오 파일의 총 재생 시간을 가져옵니다.

하지만 이 한 줄을 몇 시간 단위로 출력하려면 몇 시간 동안 노력해야 합니다.

find . -maxdepth 1 -exec ffprobe -v quiet -of csv=p=0 -show_entries format=duration {} \; | paste -sd+ -| bc

도움이 필요하십니까? 모든 답변은 몇 초 만에 출력되므로 중복되지 않기를 바랍니다. 이는 나쁘고 더 이상 해당 질문에 추가할 사람이 없기 때문입니다.

답변1

대신 다음을 | paste -sd+ -| bc사용할 수 있습니다 awk.

find ... | awk '{s+=$0} END {print s/3600}'

이것은 소수점 이하 자릿수로 시간을 인쇄하지만 시:분:초와 같은 고급 출력을 원할 경우 예를 들어 확인하십시오.여기또는여기또는 exiftool다음에서 옵션을 확인하세요.링크귀하의 질문에.

답변2

이는 명령 출력의 숫자를 3600으로 나누는 방법으로 요약됩니다.

당신이 할 수 있는 일:

... | awk '{print $0 / 3600}'

여기에서는 다음을 사용하여 모든 작업을 수행할 수 있습니다.

exiftool -r -n -q -p '${Duration;$_ = (our $total += $_) / 3600}' . | tail -n 1

(혹은 $_ = ConvertDuration(our $total += $_)이렇게 표현하면4 days 22:14:59).

관련 정보