PDA

View Full Version : سوال: سنتوس و ffmpeg و php ؟



mosi2007
جمعه 31 شهریور 1391, 14:20 عصر
سلام دوستان
من قبلا روی ویندوز ffmpeg.exe رو نصب کرده بودم برای تبدیل ویدیو ها به اف ال وی البته تویه سایتم ازش استفاده میکردم سایت اشتراک ویدیو
کدی که من تویه php نوشته بودم برای تبدیل ویدیو ها این بود

<?php
exec("ffmpeg.exe -i a.mkv -ar 22050 -ab 32 -f flv -s 340x260 a.flv");


?>

که همه چی درست بود و جواب هم گرفتم
الان میخام که همه چی رو روی لینوکس سنتوس انجام بدم چون من تازه کارم و اشنایی با سنتوس ندارم ممنون میشم دوستان کمک کنند و مراحل نصب ffmpeg رو تو لینوکس بهم مرحله به مرحله اموزش بدن
البته تویه این چند روز تویه خیلی سایتای اموزشی رو دیدم که مراحل رو اموزش داده بود ولی نتونستم ازش استفاده کنم
دوستان توجه داشته باشن که من این ffmpeg رو برای استفاده در php لازم دارم
الان تویه سنتوسم من زمپ رو نصب کردم
1=ممنون میشم دوستان مراحل نصب ffmpeg رو به من اموزش بدن خصوصا کسانی که تو این زمینه تجربه دارند ؟
2=در ضمن این کدهایی که نوشتم تویه پی اچ پی برای ffmpeg.exe است که تویه محیط ویندوز جواب میده ممنون میشم دوستان کمک کنن که معدل این کدهایه php تویه لینوکس سنتوس چی میشه؟

Unique
شنبه 01 مهر 1391, 00:31 صبح
1 - نصب ffmpeg توی لینوکس به راحتی windows و کپی کردن فایل ffmpeg.exe نیست ! برای نصب توی Cent OS از این راهنما (http://ffmpeg.org/trac/ffmpeg/wiki/CentosCompilationGuide) استفاده کنید البته این هم میشه اگه متوجه باشین چی میگه http://chrisjean.com/2009/01/13/install-ffmpeg-and-ffmpeg-php-on-centos-easily/ ، خلاصه باید با لینوکس آشنایی داشته باشین ! بعد از نصب کافیه ffmpeg را به صورت یک command به همون شکل که توی windows صدا میزنید بدون exe استفاده کنید !

2 - فرقی نمیکنه و فقط نام command را عوض کنین.

موفق باشید !

mosi2007
شنبه 01 مهر 1391, 09:26 صبح
1 - نصب ffmpeg توی لینوکس به راحتی windows و کپی کردن فایل ffmpeg.exe نیست ! برای نصب توی Cent OS از این راهنما (http://ffmpeg.org/trac/ffmpeg/wiki/CentosCompilationGuide) استفاده کنید البته این هم میشه اگه متوجه باشین چی میگه http://chrisjean.com/2009/01/13/install-ffmpeg-and-ffmpeg-php-on-centos-easily/ ، خلاصه باید با لینوکس آشنایی داشته باشین ! بعد از نصب کافیه ffmpeg را به صورت یک command به همون شکل که توی windows صدا میزنید بدون exe استفاده کنید !

2 - فرقی نمیکنه و فقط نام command را عوض کنین.

موفق باشید !
خیلی ممنون دوست عزیز
منظورتون از بدون exe اینجوریه

<?php exec("ffmpeg -i a.mkv -ar 22050 -ab 32 -f flv -s 340x260 a.flv"); ?>
یا اینطوری

<?php "ffmpeg -i a.mkv -ar 22050 -ab 32 -f flv -s 340x260 a.flv"; ?>

2= باید اینffmpeg-php رو هم نصب کنم بعد از نصب ffmpeg ?
3=من تویه سنتوس زمپ یا همون لمپ رو نصب کردم و فایل های پی اچ پی هم که طبق معمول باید توی پوشه htdosc بره الان با این کدی که دارم چطوری ffmpeg را فراخوانی کنم ؟
4=بعد از نصب ffmpeg این برنامه تو کدوم فولدر نصب میشه و چطوری باید run کردش ؟

Unique
شنبه 01 مهر 1391, 10:36 صبح
بله منظورم اینجوریه :


<?php exec("ffmpeg -i a.mkv -ar 22050 -ab 32 -f flv -s 340x260 a.flv"); ?>


2= باید اینffmpeg-php رو هم نصب کنم بعد از نصب ffmpeg ?
خیر نیازی نیست ! ffmpeg-php یکسری قابلیت ها به شما میده که اطلاعات یک فایل ویدئویی را استخراج کنید : http://ffmpeg-php.sourceforge.net/doc/api/ffmpeg_movie.php


3=من تویه سنتوس زمپ یا همون لمپ رو نصب کردم و فایل های پی اچ پی هم که طبق معمول باید توی پوشه htdosc بره الان با این کدی که دارم چطوری ffmpeg را فراخوانی کنم ؟
وقتی نصبش کردین مثل ویندوزانجام بدین !


4=بعد از نصب ffmpeg این برنامه تو کدوم فولدر نصب میشه و چطوری باید run کردش ؟
معمولا توی لینوکس زمانی که یه برنامه نصب میشه فقط کافیه توی command اسمش را بزنید ! (من زیاد لینوکسی نیستم و اطلاعاتم خیلی زیاد نیست و بیشتر هم با ubuntu server کار کردم اما تا حالا نشده یه برنامه نصب کنم بعدش لازم باشه با path اجراش کنم)

راستی من یکبار با این راهنما (http://vexxhost.com/blog/2007/03/03/installing-ffmpeg-ffmpeg-php-mplayer-mencoder-flv2tool-lame-mp3-encoder-libogg-%E2%80%93-the-easy-way/) انجام دادم و درست بود اما راهنما های قبلی هم درست هستند.

mosi2007
شنبه 01 مهر 1391, 13:14 عصر
وقتی نصبش کردین مثل ویندوزانجام بدین !



پس در کل منظورتون اینه که اگه ffmpeg درست نصب شد دیگه لازم نیست تویه فایل پی اچ پی ادرس path ش داده بشه خود سرور لینوکس میره برنامه رو اجرا میکنه؟

Unique
دوشنبه 03 مهر 1391, 12:20 عصر
بله ! همینطوری هست که میگین.

mosi2007
دوشنبه 03 مهر 1391, 21:09 عصر
دوست عزیز من الان برنامه رو به طور کامل نصب کردم و وقتی تایپ میکنم man ffmpeg هم کلی اطلاعات نمایش میده که نشون میده برنامه درست نصب شده
ولی وقتی می خام برای کانورت استفاده کنم برنامه نمیتونه کانورت کنه ویدیو را

<?php



exec('ffmpeg -i 1.wmv b.flv');





?>

الان میتونید راهنمایی کنید که من باید چیکار کنم
توی terminal یا ssh یا هر چیزه دیگه ای که میگن هم اینو

ffmpeg -i 1.wmv b.flv
تایپ کردم و جواب گرفتم یعنی فایل رو درست تبدیل کرد ولی تویه پی اچ پی نمیشه
تنظیمات خاصی است که انجام ندادمش تویه تنظیمات اپاچی ؟

Unique
سه شنبه 04 مهر 1391, 01:58 صبح
وقتی فایل را توی Terminal داره درست تبدیل میکنه یعنی اینکه درست نصب شده و باید بدون مشکل اجرا بشه !
دستور exec دو تا پارامتر دیگه یکی output و دیگری return_var میگیره ! لطفا اونها را بررسی کنید وببینید مشکل از کجاست ! شاید php و Apache مجوز لازم جهت اجرای دستور را ندارن ! باید خروجی ها را بررسی کنید.

mosi2007
سه شنبه 04 مهر 1391, 12:30 عصر
خب این مجوز رو چطوری باید به php , اپاچی بدم ؟

Unique
سه شنبه 04 مهر 1391, 13:38 عصر
میشه بگین output شما برای اون 2 پارامتر که گفتم چیه ؟

میتونین یک اسکریپت ساده بنویسین و از توی terminal مستقیما فایل php را صدا بزنید و ببینین کار میکنه یا نه اگه کار کرد مشکل از دسترسی مربوط به دایرکتوری هست که دارین فایل را از طریق apache تبدیل میکنید من دلیل دیگه ای به ذهنم نمیرسه مگه اینکه خروجی که گفتم را ببینیم.

mosi2007
سه شنبه 04 مهر 1391, 21:30 عصر
دوست عزیز من زیاد تو این برنامه و دستوراتش وارد نیستم اگه ممکنه بگید که اون 2 دستور را چطوری خروجیش رو بگیرم و چطوری به کار ببرمش؟

Unique
چهارشنبه 05 مهر 1391, 01:04 صبح
کار خاصی نداره !

$ret = -1
$output = array();
exec('ffmpeg -i 1.wmv b.flv',$output,$ret);
print_r($output);
print_r($ret);

mosi2007
چهارشنبه 05 مهر 1391, 08:07 صبح
Array ( ) 1
دوست عزیز این خروجیشه
با یکی دیگه هم که صحبت کردم گفتش :
کامند انتخابی شما فقط یا یوزر root قابل به اجراست ، در حال حاضر نمی تونه با آی دی apache به عنوان مثال کار کنه
اینو گفت ولی دیگه تا الان راهنماییم نکرده که باید برای رفع مشکل چیکار کنم

Unique
چهارشنبه 05 مهر 1391, 23:42 عصر
شاید apache باید دسترسی به shell داشته باشه اما کمی ریسکه و نمیخوام کدش را بگذارم چون نمیدونم چه عواقبی میتونه داشته باشه ! من مشکلی در استفاده از ffmpeg اصلا نداشتم و خیلی راحت کار کرد البته توی Ubuntu ! اگه به نتیجه رسیدین حتما اینجا بگین که دوستان استفاده کنند.

amin1softco
پنج شنبه 06 مهر 1391, 06:36 صبح
شاید اگر پرمیشنش عوض بشه درست بشه :
chmod -R 755 /usr/lib/codes/*
chown -R apache:apache /usr/lib/codes/*

بهتره با دستور whereis ffmpeg آدرس بالا رو پیدا کنید و جایگزین کنید.
/usr/local/bin/ffmpeg

mosi2007
پنج شنبه 06 مهر 1391, 13:54 عصر
شاید اگر پرمیشنش عوض بشه درست بشه :
chmod -R 755 /usr/lib/codes/*
chown -R apache:apache /usr/lib/codes/*

بهتره با دستور whereis ffmpeg آدرس بالا رو پیدا کنید و جایگزین کنید.
/usr/local/bin/ffmpeg
دوست عزیز میشه ی خورده بیشتر توضیح بدید چیکار کنم
الان اپاچی من تو این ادرس نصب شده :

/opt/lampp
و ffmpeg هم تو این ادرس

/usr/bin/ffmpeg
الان با اینا چیکار کنم
راستی تویه اینترنت هم جستجو کردم یه یارویه انگلیسی زبان هم مشکل من رو داشت ولی تویه فروم خودشون بهش کمک کردند ومشکلشو حل کرد من انگلیسیم زیاد خوب نیست و متوجه نشدم که چطوری بهش کمک کردند این هم ادرس همون فروم :
http://www.linuxquestions.org/questions/linux-newbie-8/apache-user-and-ffmpeg-690819/
ممنون میشم کمک کنید

amin1softco
پنج شنبه 06 مهر 1391, 14:34 عصر
در فرومی که لینک دادید هم مسئله پرمیشن مطرح بوده شما همین دو تا دستور را اجرا کنید ببنید مشکلتون رفع می شه یا نه :

chmod -R 755 /usr/bin/ffmpeg/*
chown -R apache:apache /usr/bin/ffmpeg/*

mosi2007
پنج شنبه 06 مهر 1391, 16:40 عصر
در فرومی که لینک دادید هم مسئله پرمیشن مطرح بوده شما همین دو تا دستور را اجرا کنید ببنید مشکلتون رفع می شه یا نه :

chmod -R 755 /usr/bin/ffmpeg/*
chown -R apache:apache /usr/bin/ffmpeg/*

نشد دوست عزیز
خیلی کارم لنگه اگه میشه دوستان یه کمکی کنند

amin1softco
پنج شنبه 06 مهر 1391, 19:47 عصر
من خودم دنبال این ماجرا رو گرفتم و به ترتیب این کار ها را کردم و جواب گرفتم :

yum install ffmpeg

chmod -R 755 /usr/bin/ffmpeg
chown -R apache:apache /usr/bin/ffmpeg
chmod -R 755 /var/www/*





<?php
$source="1.wmv";
$created="b.flv";
$com="echo '/usr/bin/ffmpeg -i /var/www/html/$source /var/www/html/$created' > /var/www/html/r";
exec("$com 2>&1", $out, $err);
exec("sh r", $out, $err);
if ($err) my_log_func(join("\n", $out));
print_r( $out);
?>

eshpilen
جمعه 27 بهمن 1391, 17:51 عصر
2>&1 رو به انتهای خط فرمان اضافه کن.
باعث میشه پیامهای خطا رو هم بتونی بگیری.
بعد از روی پیام خطا روشن میشه مشکل از کجاست.
از passthru هم استفاده کن که خروجی بره به مرورگر (با مرورگر کار میکنی دیگه؟).
نمونه کد کاملش رو توی اون تاپیک گذاشتم.

idocsidocs
جمعه 27 بهمن 1391, 18:27 عصر
نمونه کد کاملش رو توی اون تاپیک گذاشتم.
قبل از اینکه پست شما رو ببینم، پستم رو حذف کردم! :چشمک:
الان با این کدها مشکلی برای تبدیل فرمت ندارم:

passthru("ffmpeg.exe -i 1.mp4 -f flv 1.flv 2>&1");