بسم الله الرحمن الرحيم


والصلاة والسلام على افضل الخلق والمرسلين


محمد صلى الله عليه وسلم


واشهد ان لا اله الا الله وان محمد عبده ورسوله





خلال الثلاث سنوات الماضية, كنت اريد افتتاح موقع خاص بالفيديو يتم رفع الفيديو على الموقع وتحويل الفيديو على السيرفر وتشغيله عليه بدون اي مشاكل, وقد استخدمت سكربت ClipBucket من اجل افتتاح الموقع, لكن كانت المشكلة المستمرة هي حاجة السكربت الى متطلبات خاصة بالسيرفر وهي مكتبات ffmpeg وهي من اصعب المكتبات التي يمكن تركيبه وخصوصا لهذا السكربت فهو يحتاج الى متطلبات خاصة واصدارات خاصة فحاولت كثيرا تركيبها لكن لم افلح.


كما انني رايت ان هناك العديد من الاشخاص يبحثون عن الطريقة الصحيحة لتركيبها لكن بدون جدوى, لكن الان وبحمد الله قمت بعمل شرح كامل لطريقة تركيب هذه المكتباات بعد بذل جهد كبير في تعلم الطريقة الصحيحة.





هذا الشرح حصريا لتشغيل سكربت ClipBucket الاصدار 2.6 فما دون
وسوف يتم اضافة شرح اخر باذن الله لتشغيل جميع السكربتات بما فيها ClipBucket 2.7 beta والاصدارات الاحدث, وايضا تشغيل باقي سكربتات الفيديو.





ما هو ffmpeg :
هو عبارة عن برنامج او مكتبة يتم تثبيته على الانظمة هناك نسخة منها لنظام Linux ونسخة ايضا تستطيع تركيبها على windows
تعمل هذه المكتبة على تحويل الفيديو من صيغة الى اخرى ولها استخدامات عديدة ايضا, لكن استخدامها هنا سوف يكون من اجل تحويل صيغ الفيديو عن طريق سكربتات خاصة.





متطلبات الدرس:


سيرفر كامل او vps مع رام لا تقل عن 2 gb
نظام التشغيل: CentOS 6.x
برنامج putty للدخول الى الشل







نبدا على بركة الله:


قم بفتح الشل عن طريق برنامج putty


ثم ابدا بتطبيق الاوامر التالية:


كود:
cd
mkdir ffmpeginstaller
cd ffmpeginstaller

تثبيت Compiler:




كود:
yum install gcc-c++ make
rpm -Uhv http://dl.atrpms.net/el6-x86_64/atrp...el6.x86_64.rpm

في حال ظهور هذا الخطا:




كود:
libarchive.so.2()(64bit)



اكتب هذا الامر:


كود:
rpm -Uhv ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/martin-juhl:/branches:/openSUSE:/Tools/CentOS_6/x86_64/libarchive2-2.8.4-14.7.4.x86_64.rpm

ثم اعد كتابة الامر السابق مرة اخرى




تثبيت بعض المكتبات المهمة:


كود:
yum install libogg zlib-devel libtool
rpm -ivh  http://rpm.livna.org/livna-release.rpm

تثبيت Faac:


كود:
wget "http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz"
tar xvfz faac-1.28.tar.gz
cd faac-1.28/
./bootstrap
./configure --enable-shared
make
make install
ldconfig
cd ..

في حال ظهور خطا عند make


قم بالتالي:


قم بالتحرير الملف التالي بكتابة الامر التالي:


كود:
pico common/mp4v2/mpeg4ip.h

تاكد ان تكون داخل المجلد
faac-1.28


ثم قم بالضغط على ctrl + w وابحث عن:


كود:
char *strcasestr(const char *haystack, const char *needle);

عند ايجادها قم بحذفها


ثم ctrl + x وبعدها y و enter


الان اعد كتابة:


كود:
make
make install
ldconfig
cd ..

تثبيت x264:


كود:
rpm -ivh http://pkgs.repoforge.org/yasm/yasm-....rf.x86_64.rpm


yum install yasm
wget  ftp://ftp.videolan.org/pub/videolan/...6-2245.tar.bz2
tar xjvf  x264-snapshot-20130616-2245.tar.bz2
cd x264-snapshot-20100607-2245
./configure --enable-shared  --disable-asm
make
make install
ldconfig
cd ..

تثبيت OpenJPEG:




كود:
wget http://openjpeg.googlecode.com/files...g-1.5.0.tar.gz
tar zxvf openjpeg-1.5.0.tar.gz
cd openjpeg-1.5.0
cmake .
make install
ldconfig
cd ..

تثبيت LibTheora :


كود:
yum install libogg libogg-devel libvorbis libvorbis-devel
wget  http://downloads.xiph.org/releases/t...a-1.1.0.tar.gz
tar zxvf libtheora-1.1.0.tar.gz
cd libtheora-1.1.0
./configure --enable-shared
make
make install
cd ..

تثبيت XVid :


كود:
wget  http://downloads.xvid.org/downloads/...e-1.2.2.tar.gz
tar zxvf xvidcore-1.2.2.tar.gz
cd xvidcore
cd build/generic
./configure --enable-shared
make
make install
cd ..

تثبيت Yamdi :


كود:
wget  "http://downloads.sourceforge.net/project/yamdi/yamdi/1.9/yamdi-1.9.tar.gz"
tar zxvf yamdi-1.9.tar.gz
cd yamdi-1.9
gcc yamdi.c -o yamdi -O2 -Wall  -D_FILE_OFFSET_BITS=647
cp yamdi /usr/bin/
cd ..

تثبيت Lame MP3 encoder :


كود:
wget "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz"
tar xvzf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install 
cd ..

واخيرا تثبيت FFMPEG:


كود:
yum install subversion
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-libfaac --enable-shared --enable-memalign-hack --enable-gpl  --enable-libtheora --enable-libmp3lame --enable-libopenjpeg  --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-avfilter  --enable-swscale
make
make install
cd ..



تثبيت ffmpeg-php:


كود:
wget "http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2?use_mirror=garr"0.6.0.tbz2?use_mirror=garr"
tar xjvf ffmpeg-php-0.6.0.tbz2?use_mirror=garr
cd ffmpeg-php-0.6.0
phpize
./configure
make
make install

في حال ظهور هذا الخطا عند ./configure او make


كود:
/root/ffmpeg/ffmpeg-php-0.6.0/ffmpeg_frame.c:421: error: ‘PIX_FMT_RGBA32’ undeclared (first use in this function)
make: *** [ffmpeg_frame.lo] Error 1



قم بكتابة الامر التالي:


sed -i 's#PIX_FMT_RGBA32#PIX_FM T_RGB32#' ./ffmpeg_frame.c


وبعدها اكمل:


كود:
make
make install
cd ..

تثبيت MPlayer:


كود:
wget http://www1.mplayerhq.hu/MPlayer/rel...1.0rc3.tar.bz2
tar xjvf  MPlayer-1.0rc3.tar.bz2
cd MPlayer-1.0rc3/
./configure
make
make install
cd ..

تثبيت MP4Box:


كود:
cd /usr/local/src/
wget http://repo.bstack.net/mp4box/gpac-0.4.5.tar.gz
wget http://repo.bstack.net/mp4box/gpac_e...s-0.4.5.tar.gz
tar -zxvf gpac-0.4.5.tar.gz
tar -zxvf gpac_extra_libs-0.4.5.tar.gz
cd gpac_extra_libs
cp -r * /usr/local/src/gpac/extra_lib
cd ..
cd gpac
chmod 755 configure
./configure
make lib
make apps
make install lib
make install
cp bin/gcc/libgpac.so /usr/lib 
install -m644 bin/gcc/libgpac.so /usr/local/lib/libgpac.so
chmod +x /usr/local/lib/libgpac.so
ldconfig
cd /ffmpeginstaller



تثبيت FLVtool:


كود:
yum install ruby -y
cd /usr/local/src
wget http://repo.bstack.net/flvtool/flvtool2-1.0.6.tgz
tar zxvf flvtool2-1.0.6.tgz
cd flvtool2-1.0.6
ruby setup.rb config && ruby setup.rb setup && ruby setup.rb install
cd ..

تثبيت flvtool++


كود:
yum install wget boost-devel gcc gcc-c++ -y
rpm -ivh http://repo.bstack.net/scons/scons-1.3.1-1.noarch.rpm
mkdir flvtool++
cd flvtool++
wget http://repo.bstack.net/flvtool++/flvtool++-1.2.1.tar.gz
tar zxf flvtool++-1.2.1.tar.gz
scons
mv flvtool++ /usr/local/bin
cd ..

تحديث x264:


كود:
wget http://www.mediasoftpro.com/downloads/Presets.zip
unzip Presets.zip
cd Presets
mv * /usr/local/share/ffmpeg

سوف يسالك هل تريد الاستبادل ضع y سوف يسالك اكثر من 10 مرات ضع y على جميعهم


الان تم تثبيت كل المكتبات بحمد الله


الان علينا بتعديل ld.so.conf كتالي:


كود:
cd
pico /etc/ld.so.conf

قم باضافة


كود:
/usr/local/libevent-1.4.14b/lib
/usr/local/lib

قم بالحفظ وثم:


كود:
ldconfig

وبعدها نقوم بالتعديل على ملف php.ini كتالي


كود:
pico /usr/local/lib/php.ini

نسوي بحث عن طريق ctrl + w


كود:
post_max_size

سوف تلاحظ جنب = رقم الافتراضي 8 قم بتعديله الى
1024
اي 1 جيجا وفي حال اردت زيادة الحجم تستطيع لكن انتبه يجب ان لا يكون الحجم اكثر من حجم الرام بالسيرفر


مرة اخرى ctrl + w


كود:
upload_max_filesize

قم برفعها الى الحجم الذي تريده وهو حجم اكبر ملف يمكن رفعه على السيرفر


ايضا ابحث عن
كود:
max_execution_time
وعدلها الى 300


اسفلها
كود:
max_input_time
عدلها الى 600


اسفلها ايضا
كود:
memory_limit
عدلها الى 1024 او بحجم الرام لديك بالسيرفر لكن قم بابقاء 1 جيجا للسي بانل اي اذا كانت الرام لديك 4 جيجا قم بوضع 3 جيجا قم بوضعها 3072 اي 3 جيجا


ثم ctrl + x وبعدها y و enter


والان قم بعمل اعادة تشغيل للسيرفر
reboot


بعد اعادة التشغيل
قم بكتابة الامر ffmpeg


يفترض ان تكون النتيجة:


كود:
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec 26 2014 01:08:38 with gcc 4.4.7 20120313 (Red Hat 4.4.7-11)
  configuration: --enable-libfaac --enable-shared --enable-memalign-hack --enable-gpl --enable-libtheora --enable-libmp3lame --enable-libopenjpeg --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-avfilter --enable-swscale
  libavutil     50.36. 0 / 50.36. 0
  libavcore      0.16. 1 /  0.16. 1
  libavcodec    52.108. 0 / 52.108. 0
  libavformat   52.93. 0 / 52.93. 0
  libavdevice   52. 2. 3 / 52. 2. 3
  libavfilter    1.74. 0 /  1.74. 0
  libswscale     0.12. 0 /  0.12. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...


Use -h to get full help or, even better, run 'man ffmpeg'

لمعرفة مسارات المكتبات


which ffmpeg
which mplayer
which flvtool2
which MP4Box
which flvtool++





وهكذا نكون انتهينى من تثبيت مكتبة ffmpeg بجميع متطلباتها


في حال حدوث اي مشاكل او اخطاء يرجى عرضها هنا


بالتوفيق للجميع