답변:
ffprobe -i some_video -show_entries format=duration -v quiet -of csv="p=0"
동영상 재생 시간 (초)을 반환합니다.
비슷한 것 :
ffmpeg -i input 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,//
그러면 다음과 같은 결과가 나옵니다. HH:MM:SS.ms
. 당신은 또한 사용할 수 있습니다 ffprobe
, 대부분의 FFmpeg 설치와 함께 제공됩니다 :
ffprobe -show_format input | sed -n '/duration/s/.*=//p'
... 또는 :
ffprobe -show_format input | grep duration | sed 's/.*=//')
초 단위로 변환하고 (밀리 초를 유지하려면) 다음으로 파이프하십시오.
awk '{ split($1, A, ":"); print 3600*A[1] + 60*A[2] + A[3] }'
밀리 초로 변환하려면 다음으로 파이프하십시오.
awk '{ split($1, A, ":"); print 3600000*A[1] + 60000*A[2] + 1000*A[3] }'
밀리 초없이 초를 원한다면 다음으로 파이프하십시오.
awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'
예:
ffprobe
, 이런 종류의 목적을 위해 설계된 도구로 ffmpeg
: ffprobe -show_format input | sed -n '/duration/s/.*=//p'
(또는 ffprobe -show_format input | grep duration | sed 's/.*=//'
). 어쩌면 @slhck이 이것을 바로 답안으로 편집 할 수 있습니다.