본문 바로가기

Programming/Bash

How to check the length of a media file on bash - bash 를 이용한 동영상 파일 길이 알아내기.

There are several methods to do that. I'd like to post one of the easiest way how I can find out the length of a video(media) file by using.

First of all, you need to install 'FFMPEG' with homebrew on mac (if you are using it). if you don't know how to install homebrew on MAC, you can check it on my blog link below


[MAC TIP] Mac에 Homebrew 설치하기


Here we go~,


Something similar to:

ffmpeg -i input 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,//

This will deliver: HH:MM:SS.ms. You can also use ffprobe, which is supplied with most FFmpeg installations:

ffprobe -show_format input | sed -n '/duration/s/.*=//p'

… or: 

ffprobe -show_format input | grep duration | sed 's/.*=//'

To convert into seconds (and retain the milliseconds), pipe into:

awk '{ split($1, A, ":"); print 3600*A[1] + 60*A[2] + A[3] }'

To convert it into milliseconds, pipe into:

awk '{ split($1, A, ":"); print 3600000*A[1] + 60000*A[2] + 1000*A[3] }'

If you want just the seconds without the milliseconds, pipe into:

awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'



EXAMPLES)