User Tools

Site Tools


ffmpeg:video:size

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki