CpanelServerServer Level

نصب FFMPEG در سرور لینوکس

فشرده سازی ویدئو و فایل صوتی در cPanel

نصب FFMPEG در سرور لینوکس

(با دسترسی root یا sudo)

1️⃣ فعال کردن EPEL

dnf install -y epel-release

2️⃣ فعال کردن RPM Fusion (مهم‌ترین مرحله)

dnf install -y \
https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm

3️⃣ نصب ffmpeg

dnf install -y ffmpeg ffmpeg-devel

✅ تست نهایی

ffmpeg -version

اگر ورژن نمایش داده شد → نصب موفق ✅

 فشرده‌سازی ویدیوهای MP4 با H.264 با FFmpeg

روش صحیح جلوگیری از نمایش خروجی باینری

برای اجرای تمیز و مناسب سرور، توصیه می‌شود FFmpeg با تنظیمات زیر اجرا شود:

ffmpeg -nostdin -hide_banner -loglevel error -stats \
-i input.mp4 \
-c:v libx264 -preset medium -crf 28 \
-c:a aac -b:a 128k \
output.mp4

مزایا:

  • -nostdin → جلوگیری از تعامل با ترمینال
  • -loglevel error → نمایش فقط خطاهای واقعی
  • -stats → نمایش وضعیت پردازش بدون لاگ اضافی

از bash زیر می توانید برای فشرده کردن تمام ویدئو ها در یک مسیر استفاده کنید

#!/bin/bash

TARGET_DIR="/home/YOUR-VIDEOS-PATH"
TMP_DIR="/home/tmp"
THREADS=2
CRF=28
LOG="/home/backup/ffmpeg.log"

find "$TARGET_DIR" -type f -name "*.mp4" -size +100M -print0 | \
while IFS= read -r -d '' f; do
  base="$(basename "$f")"
  tmp_file="$TMP_DIR/$base"

  echo "Processing: $f"

  nice -n 10 ffmpeg -y \
    -nostdin \
    -hide_banner \
    -loglevel error \
    -stats \
    -threads "$THREADS" \
    -i "$f" \
    -c:v libx264 -preset medium -crf "$CRF" \
    -pix_fmt yuv420p -movflags +faststart \
    -c:a aac -b:a 128k \
    "$tmp_file" \
    >> "$LOG" 2>&1 \
    && mv -f "$tmp_file" "$f"
done

برای فشرده سازی تصاویر  ابتدا موارد زیر را نصب کنید

dnf install -y jpegoptim optipng

سپس bash زیر را اجرا کنید

 

#!/bin/bash

TARGET_DIR="/home/username/public_html/wp-content/uploads"
LOG_FILE="/home/backup/image-compress.log"

MIN_SIZE="+200k"
CPU_LIMIT=2
JPEG_QUALITY=82
PNG_OPT_LEVEL=2

COUNT=0

mkdir -p "$(dirname "$LOG_FILE")"
echo "---- $(date) START IMAGE COMPRESSION ----" >> "$LOG_FILE"

export JPEG_QUALITY PNG_OPT_LEVEL

find "$TARGET_DIR" -type f \( \
    -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \
\) -size "$MIN_SIZE" -print0 | \
xargs -0 -n 1 -P "$CPU_LIMIT" bash -c '
file="$0"

case "${file,,}" in
    *.jpg|*.jpeg)
        jpegoptim --max="$JPEG_QUALITY" --strip-all --all-progressive --quiet "$file"
        ;;
    *.png)
        optipng -o"$PNG_OPT_LEVEL" -quiet "$file"
        ;;
esac

echo "✔ compressed: $file"
' >> "$LOG_FILE" 2>&1

echo "---- $(date) DONE ----" >> "$LOG_FILE"

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا