디렉토리에 있는 각 비디오 파일의 지속 시간을 나열합니다.

디렉토리에 있는 각 비디오 파일의 지속 시간을 나열합니다.

.MP4 비디오 파일로 가득 찬 디렉토리가 있습니다. 각 파일의 이름과 지속 시간(분, 초)이 포함된 목록을 보고 싶습니다. 이 같은:

one.mp4    4:34
two.mp4    2:23
three.mp4  8:34
four.mp4   0:43

많은 파일 관리자를 사용해 보았지만 이 정보를 표시하는 관리자를 찾을 수 없습니다.

터미널과 관련된 솔루션은 괜찮을 것입니다.

답변1

이것을 시도해 보세요: (에서 영감을 얻었습니다.superuser.com)

for f in *.mp4
do
  echo -n "$f "
  ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -sexagesimal "$f"
done

그러나 출력은 HH:MM:SS.MILLISECONDS 형식입니다. -sexagesimal 옵션을 생략하면 지속 시간이 초 단위로 표시됩니다.

원하는 출력 형식 HH:MM의 경우 다음과 같이 수행할 수 있습니다.

for f in *.mp4
do
  echo -n "$f "
  dur=`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"`
  min=`echo "$dur/60" | bc`
  sec=`echo "$dur%60/1" | bc`
  echo "$min:$sec"
done

답변2

avprobe패키지에서 libav-tools이 작업을 수행합니다.

샘플 출력 avprobe myfile.mp4

avprobe 버전 10.1-6:10.1-1~bpo70+1, Copyright (c) 2007-2014 Libav 개발자
  2014년 6월 6일 18:25:37에 gcc 4.7(Debian 4.7.2-5)로 구축됨
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] 여러 편집 목록 항목, a/v 비동기화가 발생할 수 있음, 패치 환영
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] 여러 편집 목록 항목, a/v 비동기화가 발생할 수 있음, 패치 환영
'Zieleinlauf_2013_1886.mp4'에서 #0, mov,mp4,m4a,3gp,3g2,mj2를 입력합니다.
  메타데이터:
    major_brand : 이솜
    마이너 버전 : 512
    Compatible_brands: isomiso2avc1mp41
    인코더 : Lavf54.2.100
  지속 시간: 00:00:14.09, 시작: 0.021995, 비트 전송률: 4009kb/s
    스트림 #0.0(und): 비디오: h264(높음), yuv420p, 534x300, 3854kb/s, 25fps, 25tbn, 50tbc(기본값)
    스트림 #0.1(und): 오디오: aac, 22050Hz, 모노, fltp, 127kb/s(기본값)
# avprobe 출력

관련 정보