⚡ شرح كامل من الصفر | n8n + FFmpeg + TTS + Image AI + يوتيوب | مشروع متكامل

ROOYAI academy
By -
0
دمج FFmpeg مع n8n — المرجع الكامل
n8n Automation FFmpeg Video دليل عملي

دمج FFmpeg مع n8n

المرجع الكامل لإعداد سيرفر Linux جديد، تثبيت EasyPanel وn8n، وبناء Workflow يولّد فيديوهات تلقائياً من صور وصوت.

01

الاتصال بالسيرفر

تسجيل الدخول عبر SSH كـ root

Terminal — SSH
ssh root@YOUR_SERVER_IP
02

تثبيت Docker

تنزيل Docker وتفعيله تلقائياً مع كل إعادة تشغيل للسيرفر

تنزيل وتثبيت Docker
curl -fsSL https://get.docker.com | bash
sudo systemctl enable docker && sudo systemctl start docker
تحقق من التثبيت:  نفّذ docker --version — المتوقع رؤية Docker version 26.x.x
03

إعداد شبكات Docker

تحديد نطاقات IP الافتراضية لتجنب تعارض الشبكات

daemon.json — IP address pools
sudo mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
  "default-address-pools": [
    {"base": "172.17.0.0/16", "size": 24},
    {"base": "172.18.0.0/16", "size": 24},
    {"base": "172.19.0.0/16", "size": 24},
    {"base": "172.20.0.0/16", "size": 24}
  ]
}
EOF

sudo systemctl restart docker
04

تثبيت EasyPanel

لوحة تحكم لإدارة التطبيقات والحاويات بسهولة

تشغيل EasyPanel Setup
docker run --rm -it   -v /etc/easypanel:/etc/easypanel   -v /var/run/docker.sock:/var/run/docker.sock:ro   easypanel/easypanel setup
فتح البورتات المطلوبة
sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow 3000/tcp && sudo ufw reload
افتح لوحة تحكم EasyPanel عبر المتصفح على:  http://IP_السيرفر:3000
05

التحقق من وجود FFmpeg

تأكيد أن FFmpeg متاح داخل بيئة n8n قبل تشغيل أي Workflow

Terminal
ffmpeg -version
06

متغيرات البيئة لـ n8n

ضعها في إعدادات n8n داخل EasyPanel — Environment Variables

المتغير
القيمة
N8N_TRUSTED_PROXIES
loopback,linklocal,uniquelocal,172.16.0.0/12,192.168.0.0/16
DB_SQLITE_POOL_SIZE
5
N8N_RUNNERS_ENABLED
true
N8N_BLOCK_ENV_ACCESS_IN_NODE
false
N8N_GIT_NODE_DISABLE_BARE_REPOS
true
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
true
N8N_PORT
5678
N8N_PROTOCOL
https
N8N_SECURE_COOKIE
false
N8N_BASIC_AUTH_ACTIVE
true
N8N_BASIC_AUTH_USER
admin
N8N_BASIC_AUTH_PASSWORD
admin
N8N_DEFAULT_BINARY_DATA_MODE
filesystem
N8N_USER_FOLDER
/home/node/.n8n
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES
false
EXECUTIONS_TIMEOUT
600
N8N_EXECUTIONS_PROCESS
main
N8N_EXEC_COMMAND_MAX_OUTPUT_SIZE
52428800
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS
false
NODE_FUNCTION_ALLOW_BUILTIN
*
NODE_FUNCTION_ALLOW_EXTERNAL
*
.env — نسخ الكل دفعة واحدة
N8N_TRUSTED_PROXIES=loopback,linklocal,uniquelocal,172.16.0.0/12,192.168.0.0/16
DB_SQLITE_POOL_SIZE=5
N8N_RUNNERS_ENABLED=true
N8N_BLOCK_ENV_ACCESS_IN_NODE=false
N8N_GIT_NODE_DISABLE_BARE_REPOS=true
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
N8N_PORT=5678
N8N_PROTOCOL=https
N8N_RESTRICT_FILE_ACCESS_TO=""
N8N_SECURE_COOKIE=false
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=admin
NODES_EXCLUDE="[]"
N8N_DEFAULT_BINARY_DATA_MODE=filesystem
N8N_USER_FOLDER=/home/node/.n8n
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=false
EXECUTIONS_TIMEOUT=600
N8N_EXECUTIONS_PROCESS=main
N8N_EXEC_COMMAND_MAX_OUTPUT_SIZE=52428800
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false
NODE_FUNCTION_ALLOW_BUILTIN=*
NODE_FUNCTION_ALLOW_EXTERNAL=*
07

إنشاء مجلدات الوسائط

على Terminal السيرفر — ننشئ المجلدات ونضبط الصلاحيات

/home/node/.n8n/
└── media/
├── images/
├── audio/
└── videos/
Terminal — إنشاء المجلدات وإعداد الصلاحيات
# إنشاء المجلدات
mkdir -p /home/node/.n8n/media/images
mkdir -p /home/node/.n8n/media/audio
mkdir -p /home/node/.n8n/media/videos

# إعطاء الصلاحيات المناسبة
chown -R node:node /home/node/.n8n/media
chmod -R 755 /home/node/.n8n/media

# تأكيد الإنشاء
ls -lh /home/node/.n8n/media/
08

إعداد Workflow في n8n

ترتيب Nodes داخل n8n لحفظ الصور والصوت، وإنتاج الفيديو

حفظ الصور
Read/Write Files from Disk
Operation
Write File to Disk
File Path — مع اسم ديناميكي
/home/node/.n8n/media/image_{{ $json.image_index }}.jpg
أو باسم من المتغير
/home/node/.n8n/media/{{ $json.fileName }}
حفظ الصوت
Read/Write Files from Disk
Operation
Write File to Disk
File Path
/home/node/.n8n/media/audio.mp3
إنشاء قائمة الصور (images.txt)
Execute Command
bash script
#!/bin/bash

if ls /home/node/.n8n/media/image_*.jpg 1> /dev/null 2>&1; then
    rm -f /home/node/.n8n/media/images.txt

    for img in /home/node/.n8n/media/image_*.jpg; do
        echo "file '$img'" >> /home/node/.n8n/media/images.txt
        echo "duration 5" >> /home/node/.n8n/media/images.txt
    done

    echo "images.txt created with $(ls /home/node/.n8n/media/image_*.jpg | wc -l) images."
else
    echo "No images found, skipping images.txt creation."
    exit 1
fi
دمج الصور + الصوت → فيديو MP4
Execute Command — FFmpeg
ffmpeg command
ffmpeg -threads 2 -y   -stream_loop -1 -f concat -safe 0   -i "/home/node/.n8n/media/images.txt"   -i "/home/node/.n8n/media/audio.mp3"   -filter_complex "[0:v]scale=trunc(iw/2)*2:trunc(ih/2)*2[v]"   -map "[v]" -map 1:a   -c:v libx264 -preset ultrafast -crf 23 -r 30   -c:a aac -b:a 192k -af volume=1.2   -pix_fmt yuv420p   -shortest   "/home/node/.n8n/media/final_video.mp4"
قراءة الفيديو النهائي
Read/Write Files from Disk
Operation
Read File from Disk
File Path
/home/node/.n8n/media/final_video.mp4
تأكد أن المسار في Node قراءة الفيديو هو نفس مسار الإخراج في أمر FFmpeg final_video.mp4
09

تنظيف الملفات المؤقتة

نفّذ هذا في نهاية كل Workflow لتحرير مساحة السيرفر

Execute Command — حذف سريع
rm -f /home/node/.n8n/media/*.jpg        /home/node/.n8n/media/*.txt        /home/node/.n8n/media/*.mp3        /home/node/.n8n/media/*.mp4
Execute Command — حذف شامل مع /tmp
#!/bin/bash

rm -f  /home/node/.n8n/media/final_video.mp4
rm -f  /home/node/.n8n/media/*.mp4
rm -rf /tmp/*.jpg /tmp/*.mp3 /tmp/*.mp4 /tmp/*.txt /tmp/*.png

echo "Old videos deleted."

Tags:
AI

Post a Comment

0 Comments

Post a Comment (0)
3/related/default