ffmpeg:video:size
Table of Contents
ffmpeg - Video - Size
Using Perl Regex
ffmpeg -i "input.mkv" -c copy -f null /dev/null 2>&1 | tail -n 2 | grep -Po "(?<=video\:)([0-9]+)" or ffmpeg -i "input.mkv" -c copy -f null /dev/null 2>&1 | tail -n 2 | grep -Po "video\:([0-9]+)(?=kB)" | cut -f 2 -d ":
NOTE: Gets the size directly from ffmpeg.
Get the video size from the stream
ffprobe -v error -select_streams v:$i -show_entries stream=size -of default=noprint_wrappers=1:nokey=1 "input.mkv" | uniq
WARNING: This often returns N/A for some container formats, such as MKV.
Get the video size from the container
ffprobe -v error -select_streams v:0 -show_entries format=size -of default=noprint_wrappers=1:nokey=1 "input.mkv" | uniq
WARNING: This gets the entire container size, not just the video stream…
Calculate video size manually using packet size
This method reads each video packet, individually, and totals up each packet size.
- Sums up the size attribute of -show_entries command.
video_sizes=$(ffprobe -v error -select_streams v:0 -skip_frame nokey -show_entries packet=size -of default=nokey=1:noprint_wrappers=1 "input.mkv") sum_video_size=0 precision=6 count_video_pkt_size=0 echo "Calculating video size..." for video_size in $video_sizes; do (( sum_video_size+=video_size )) (( count_video_size++ )) done; size=$( echo "scale=6; ${sum_video_size}" | bc)
NOTE: This is very accurate but may be slow…
ffmpeg/video/size.txt · Last modified: 2025/05/27 19:31 by peter