====== ffprobe - Duration ====== ===== Container Format Duration ===== ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4 returns: 30.024000 **NOTE:** The output duration is in seconds. Adding the **-sexagesimal** option will use the HOURS:MM:SS.MICROSECONDS time unit format: 0:00:30.024000 ---- ===== Stream duration ===== Duration of the first video stream: ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 input.mp4 returns: 30.000000 **NOTE:** Not all formats, such as Matroska and WebM, store duration at the stream level resulting in duration=N/A. * Refer to Format (container) duration instead. ---- ===== Get duration by decoding ===== Get the duration by fully decoding the file. * The null muxer is used so no output file is created. ffmpeg -i input.mkv -f null - returns: ... frame=206723 fps=1390 q=-0.0 Lsize=N/A time=00:57:28.87 bitrate=N/A speed=23.2x **NOTE:** This will report the correct duration in case the methods shown above using ffprobe are incorrect or missing due to corrupt, truncated, or damaged files. * **time=** - in the next-to-last line of the console output has the duration. * In this example the input has a duration of 00:57:28.87. * The command may take some time depending on the input file duration and decoding complexity. ----