답변:
비디오 길이를 알려줍니다.
ffmpeg -i myvideo 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//
Mediainfo 는이 목적을위한 빠른 도구입니다.
$ mediainfo --Inform="Video;%Duration%" [inputfile]
보다 철저한 답변 에서 더 많은 옵션을 찾을 수 있습니다 .
내 테스트에서는 ffprobe
0.3 초가 mediainfo
걸리고 0.09 초가 걸립니다.
mediainfo --Inform="Video;%Duration/String%" [inputfile]
당신에게 이케 뭔가 얻을 것입니다 ... 43 개의 50
avconv 명령 을 사용할 수 있습니다 .
먼저 설치해야합니다 :
-i 플래그와 함께 명령을 입력하면 비디오에 대한 정보를 얻을 수 있습니다.
avconv -i test.mp4
출력에는 Duration 이라는 필드가 있습니다
avconv version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Nov 6 2012 16:51:33 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Duration: 00:58:28.05, start: 0.000000, bitrate: 888 kb/s
Stream #0.0(eng): Video: h264 (High), yuv420p, 720x404, 748 kb/s, 25 fps, 25 tbr, 20k tbn, 50 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
이제 명령을 사용하여 Duration 필드의 값만 가져올 수 있습니다
유형:
avconv -i file.mp4 2>&1 | grep 'Duration' | awk '{print $2}' | sed s/,//
필자의 경우 결과는 다음과 같습니다.
00:58:28.05
58 분 28.05 초
이것이 도움이 되길 바랍니다!
avprobe
-필요는 -i
없지만 정확히 같은 방식으로 작동합니다. 또는 ffprobe
@per의 답변입니다.
exiftool
(원래는 이미지 파일에서 카메라 메타 데이터를 읽기위한 것이지만 나중에 거의 모든 종류의 미디어 파일 에서 메타 데이터 를 읽고 쓸 수 있도록 확장 됨 )는 매우 편리합니다. 다음과 같이 실행하십시오.
exiftool FILE.mp4 | grep Duration
exiftool
먼저 설치해야 할 수도 있지만 데비안과 우분투와 같은 파생물에서 다음 명령으로 쉽게 수행 할 수 있습니다.
apt install libimage-exiftool-perl
물론이 답변은 또 다른 대안입니다. 다른 많은 답변도 좋습니다. :)
더 간단합니다 :
avprobe file.mp4 -show_format_entry duration
pers solution에 추가 하면 전체 디렉토리에서 사용할 수 있습니다.
for f in *; do ffmpeg -i "$f" 2>&1 | grep Duration | cut -d " " -f 4 | sed s/,// | tr -d "\n" && echo " $f"; done
| sort
파일을 길이별로 정렬 하도록 확장 할 수도 있습니다 .
당신은이를 추가 할 수 있습니다 .bashrc
하거나 .bash_aliases
할 수 있도록하기 위해 lsvlength | sort
디렉토리에
alias lsvlength='for f in *; do ffmpeg -i "$f" 2>&1 | grep Duration | cut -d " " -f 4 | sed s/,// | tr -d "\n" && echo " $f"; done'