FFmpeg پروژهای نرمافزاری و Open Source (متن باز) برای مدیریت و کار با فایلهای چند رسانهای است، این نرمافزار شامل کتابخانههایی از جمله libavcodec (کتابخانهای از کدکهای صوتی و تصویری) و libavformat (کتابخانهای از مالتی پلکسر و دیمالتی پلکسر برای فرمتهای صوتی و تصویری) میباشد. همچنین خط فرمان FFmpeg امکان تبدیل فرمتهای چندرسانهای به هم، را در اختیار کاربر قرار میدهد.
Flvtool2 محبوبترین ابزار متن باز تزریق فراداده در فایلهای FLV است؛ این برنامه به زبان Ruby (روبی) نوشته شده، بنابراین نصب روبی برای کار با آن ضروری است.
راهنمای نصب FFmpeg و Flvtool2:
جهت نصب FFmpeg و Flvtool2 بر روی CentOS 6 مراحل زیر را طی نمایید:
۱- ابتدا با اجرای دستورات زیر، ابزارهای توسعه و مخازن مورد نیاز را نصب نمایید:
yum –y groupinstall "Development tools" rpm -ivh https://dl.dropboxusercontent.com/u/32483919/rpmforge-release-0.5.31.el6.rf.x86_64.rpm rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms rpm -ivh http://dl.atrpms.net/el6-x86_64/atrpms/stable/atrpms-repo-6-7.el6.x86_64.rpm wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
۲- حال برای نصب FFmpeg ،Flvtool2 و کدکها دستور زیر را اجرا نمایید:
yum –y install ffmpeg ffmpeg-devel flvtool2 yasm yamdi lame libogg libvorbis libtheora swftools amrnb amrwb transcode x264 faac mediainfo
FFmpeg-PHP:
FFmpeg-PHP افزونهای برای زبان PHP است که یک API شی گرا با کاربری ساده را جهت دسترسی و بازیابی اطلاعات از فایلهای ویدئویی و صوتی فراهم میآورد؛ این API، متدهایی برای برگرداندن فریمهای فایلهای ویدئویی به فرمت تصویر دارد که میتواند توسط توابع تصویر PHP مورد استفاده قرار گیرد.
نصب ماژول FFmpeg-PHP:
برای نصب این افزونه ابتدا دستورات زیر را اجرا کنید:
yum –y install git cd /usr/local/src/ git clone https://github.com/tony2001/ffmpeg-php cd ffmpeg-php phpize ./configure make && make install
پس از نصب FFmpeg-PHP جهت فعال شدن ماژول باید در فایل php.ini سطر زیر را اضافه نمایید:
extension="ffmpeg.so"
حال برای اعمال تغییرات لازم است که سرویس Apache را restart نمایید، برای این منظور از دستور زیر استفاده نمایید.:
service httpd restart
رفع خطاهای احتمالی زمان کامپایل:
دو نوع خطای ممکن است در زمان کامپایل رخ دهد، در ادامه هر دو خطا و روش برطرف کردن آنرا توضیح خواهیم داد.
اگر خطای زیر را دریافت کردید:
/usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function âzim_ffmpeg_frame_toGDImageâ: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: âPIX_FMT_RGBA32â undeclared (first use in this function) /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: (Each undeclared identifier is reported only once /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: for each function it appears in.) /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function âzim_ffmpeg_frame_ffmpeg_frameâ: /usr/src/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
برای رفع آن کافیاست به کمک دستورات زیر محتوای فایل ffmpeg_frame.c را جستجو و عبارت «“PIX_FMT_RGBA32″» را با «“PIX_FMT_RGB32″» جایگزین نمایید، سپس برنامه را کامپایل نمایید.
sed -i 's#PIX_FMT_RGBA32#PIX_FMT_RGB32#' ./ffmpeg_frame.c make clean phpize ./configure && make make install
اگر با خطای زیر مواجه شدید:
"/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: (Each undeclared identifier is reported only once /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: for each function it appears in.) /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: âleâ undeclared (first use in this function) /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:346: error: expected â;â before ânew_leâ /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:356: error: ânew_leâ undeclared (first use in this function) /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function âzim_ffmpeg_movie_getCommentâ: /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:531: warning: âcommentâ is deprecated (declared at /usr/local/include/l ibavformat/avformat.h:760)"
برای رفع آن کافیاست تغییرات زیر را در سطرهای مشخص شده فایل ffmpeg_movie.c اعمال و مجددا برنامه را کامپایل نمایید.
سطر 311:
list_entry *le; -> zend_rsrc_list_entry *le;
سطر 346:
list_entry new_le; -> zend_rsrc_list_entry new_le;
سطر 360:
hashkey_length+1, (void *)&new_le, sizeof(list_entry), -> hashkey_length+1, (void *)&new_le,sizeof(zend_rsrc_list_entry),
- عبارت بعد از -> باید با عبارت قبل آن جایگزین گردد.
MP4Box:
MP4box یک مالتی پلکسر MP4 است. این برنامه قادر است که ویدئوهایی با فرمتهای MPEG-4 ،DivX،XviD ،3ivx و h264 صوت و زیرنویس را به یک فایل .MP4 تبدیل کند. این برنامه قابلیتهای دیگری نظیر تبدیل، برش و رمزنگاری فایلهای صوتی و تصویری را نیز ارائه میکند.
نصب MP4Box:
برای نصب MP4Box دستورات زیر را به ترتیب اجرا کنید:
Yum -y install freetype-devel SDL-devel freeglut-devel cd /usr/local/src wget http://downloads.sourceforge.net/gpac/gpac-0.5.0.tar.gz wget http://downloads.sourceforge.net/gpac/gpac_extra_libs-0.5.0.tar.gz tar zxvf gpac-0.5.0.tar.gz tar zxvf gpac_extra_libs-0.5.0.tar.gz cd gpac cp -r ../extra_libs/* extra_lib/ chmod +x configure ./configure make lib make apps make install-lib make install cp bin/gcc/libgpac.so /usr/lib ldconfig