Files
bubu-server-scripts/calculate_bitrate.sh
2025-04-13 16:21:50 +02:00

47 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Check if the folder is provided as an argument
if [ -z "$1" ]; then
echo "Usage: $0 <folder_with_videos>"
exit 1
fi
VIDEO_FOLDER="$1"
OUTPUT_FILE="bitrates.txt"
TOTAL_BITRATE=0
VIDEO_COUNT=0
# Clear or create the output file
> "$OUTPUT_FILE"
# Function to get bitrate of a video in Mbps
get_bitrate() {
local video_file="$1"
bitrate_kbps=$(ffprobe -v error -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "$video_file" | head -n 1)
if [[ "$bitrate_kbps" =~ ^[0-9]+$ ]]; then
bitrate_mbps=$(echo "scale=2; $bitrate_kbps / 1000 / 1000" | bc)
echo "$bitrate_mbps"
else
echo "0"
fi
}
# Iterate through each video file in the folder
for video_file in "$VIDEO_FOLDER"/*; do
if [ -f "$video_file" ]; then
bitrate=$(get_bitrate "$video_file")
echo "File: $video_file - Bitrate: ${bitrate} Mbps" | tee -a "$OUTPUT_FILE"
TOTAL_BITRATE=$(echo "$TOTAL_BITRATE + $bitrate" | bc)
((VIDEO_COUNT++))
fi
done
# Calculate the average bitrate
if [ "$VIDEO_COUNT" -gt 0 ]; then
AVERAGE_BITRATE=$(echo "scale=2; $TOTAL_BITRATE / $VIDEO_COUNT" | bc)
echo "Average Bitrate: $AVERAGE_BITRATE Mbps" | tee -a "$OUTPUT_FILE"
else
echo "No video files found in the specified folder." | tee -a "$OUTPUT_FILE"
fi