PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش راه اندازي ويديو سرور در لينوكس با استفاده از php با قابليت ارايه كيفيت هاي محختلف



mtchivarly
March 24th, 2011, 05:22
سلام
چيزي كه امروز تصميم دارم خدمتتون ارايه بدم مطلبي كه كمتر ديدين و يا شنيدين اما فوق العاده كاربردي.
شايد سايتهايي رو ديده باشين كه يك ويدئو را در كيفيت هاي مختلف با فرمت هاي مختلف ارايه مي دن يا حتي فرمت ها را تبديل مي كنند.
حتما سايت هايي را ديدين كه streaming انجام مي دهند و ويديو را بصورت آنلاين پخش مي كنند.
اينجا مي خوام در اين مورد توضيح بدم .اما فكر نمي كنم بتونم همشو يك جا توضيح بدم. در چند پست ان شاالله انجامش مي دم.

قدم اول
به ابزاري نياز داريم كه ويدئو هارو دانلود كنيم.
بسيار خوب اين قسمت ساده است همون مامند wget قديمي.

قدم دوم
حالا كه ويدئو ها رو دانلود كرديم بايد به طريقي بتونيم اون ها را مديريت كنيم. لينوكس به عنوان يك سيستم عامل سرور امكتنات فوق العاده اي را د هختيارمون مي ذاره اون هم رايگان.
ابتدا بايد ffmpeg را نصب كنيم .ffmpeg به صورت rpm موجوده اما از اونجايي كه نصب dependency هاش به صورت دستي ديوانه كننده است به سراغ yum مي ريم.
براي نصب ffmpeg بوسيله yum بايد يك repo به yum اضافه كنيم به اين صورت عمل مي كنيم.
در داخل دايركتوري /etc/yum.repos.d يك فايل با نام dag.repo ايجاد مي كنيم.
*براي دوستان تازيه كار=< ايجاد فايل با فرمان


#vi dag.repo
داخل فايل خطوط زير رو كپي مي كنيم.

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=1


enabled=1
حالا فايل را سيو مي كنيم و از اديتورvi خارج مي شيم
حالا كه repo مورد نياز را اضافه كرديم مي ريم و با استفاده از yum ، پكيج ffmpeg را نصب ميكنيم. به شكل زير.


yum install ffmpeg ffmpeg-devel
حالا منتظر ميمونيم تا نصب به پايان برسه احتمالا در فآخر فرايند نصب به warning برمي خورين كه باعث ميشه نصب كامل نشه براي حل اين مشكل rpm زير رو نصب كنين.

rpm -Uhv


http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
بعد از نصب rpm كه مشكل GPG Key رو حل مي كرد دوباره با yum ،ffmpeg رو نصب كنينهانطور كه بالا گفته شد.
بعد از نصب ffmmpeg براي اطمينان از نصب صحيح فرمان ffmpeg –help را اجرا كنين و ببينيد سرويس ffmpeg وجود داره يا خير.
حالا مي خواهيم بدونيم كه آيا ffmpeg از چه فرمت هايي پشتيباني ميكنه، براي اين كار دستور


ffmpeg -formats > ffmpeg-format.txt
را وارد نيد.اين فرمان فرمت هاي ساپورت شده را در فايلي به نام ffmpeg-format.txt ذخيره مي كنه.
اين نمونه اي از فايل ffmpeg-format.txt مي باشد.

File formats:

D. = Demuxing supported

.E = Muxing supported

--

E 3g2 3GP2 format

E 3gp 3GP format

D 4xm 4X Technologies format

D IFF IFF format

D ISS Funcom ISS format

D MTV MTV format

DE RoQ raw id RoQ format

D aac raw ADTS AAC

DE ac3 raw AC-3

E adts ADTS AAC

D aea MD STUDIO audio

DE aiff Audio IFF

DE alaw PCM A-law format

DE alsa ALSA audio output

DE amr 3GPP AMR file format

D anm Deluxe Paint Animation

D apc CRYO APC format

D ape Monkey's Audio

DE asf ASF format

.

.

D video4linux Video4Linux device grab

D video4linux2 Video4Linux2 device grab

D vmd Sierra VMD format

E vob MPEG-2 PS format (VOB)

DE voc Creative Voice file format

D vqf Nippon Telegraph and Telephone Corporation (NTT) TwinVQ

D w64 Sony Wave64 format

DE wav WAV format

D wc3movie Wing Commander III movie format

E webm WebM file format

D wsaud Westwood Studios audio format

D wsvqa Westwood Studios VQA format

D wv WavPack

D x11grab X11grab

D xa Maxis XA File Format

D yop Psygnosis YOP Format

DE yuv4mpegpipe YUV4MPEG pipe format
در اينحجا بايد مقداري آشنايي با ويديو و ساختار تصوير داشته باشين.
براي تبديل هر فرمت تصوير به ففرمت ديگه مراحل زير انجام ميشه
1-فايل تصوير decode ميشه.
2-فايل تصوير فريم به فريم تحت يم فرمت ديگه encode ميشه.
البته دقيقا مثل هميت اتفاق براي صدا هم اتفاق مي افته.
تو ليست بالا حروف D و E رو مي بينيد كه نشان دهنده ي پشتيباني از encode و decode باشند.
براي اينكه سرور ما بتونه ويدئو هاي flv را به فرمت هاي ديگه تبديل كنه بايد پكيج مخصوص flv را هم نصب كنيم . اين كار هم به راحتي با yum قابلل انجامه.
براي نصب flvtool2 نياز دارين كه ruby را نصب كرده باشين.پس به طريق زير عمل مي كنيم.


yum install ruby
و حالا نصبflvtool2


yum install flvtool2
و حالا كار ما تقريبا تمومه البته اگه بخواين مي تونين mplayer و mencoder را هم نصب كنين.
قدم سوم
در ايم مرحله يك فايل را به صورت نمونه تبديل مي كنيم.

ffmpeg -i input.flv -r 24 –s cif output.mp4


فكر ميكنم كه اين دستور كاملا واضح باشه

Input=فايل مبدا

Output فايل مقصد=

R=frame rate

S=اندازه تصوير


پايان قسمت اول



در مرحله هاي بعدي آرگومان هاي ffmpeg را كاملا توضيح مي ديم و پس از آشنايي كافي مي ريم به سراغ streaming . و البته نصب ffmpeg را هم به عنوان يك extensionphp فراموش كردم توضيح بدم كه ميمونه طلب شما.

Woshka
March 24th, 2011, 07:38
کامپایل کردن ffmpeg و کتالخانه هاش به صورت جداگانه بهتر از نصب با yum
خیلی سخت تر هست ولی بهتر هستش
این تجربه شخصی منه البته هم جا هم همین رو می گن

astro.alireza
March 25th, 2011, 17:06
سلام
ممنون از آموزش خوبتون
راه حلی واسه مسئله زیر دارید؟
یه وبکم به یه کامپیوتر که اینترنت داره وصل هست. می خوایم تصویر این وبکم رو واسه یه کامپیوتر دیکه که اون هم به اینترنت وصل هست نمایش بدیم (یه چیزی شبیه به ویدئو کنفرانس). پس باید تصاویر این وبکم به سرور ما انتقال پیدا کنه و از سرور به سمت کامپیوتر مقصد بره. چه جوری این کار انجام میشه؟

mtchivarly
March 31st, 2011, 17:52
سلام دوست عزيز
معذرت كه دير پاسخ دادم. بله رته حلش بسيار سادست. شما با استفاده از ffserver و streaming مي توني اين كارو انجام بدي. فقط اگر مي خواي streaming با مديا پلير خوانده بشه بايد فيد رو asf انتخاب كني.

astro.alireza
March 31st, 2011, 19:56
من در این زمینه تازه کارم، اگه امکانش هست مفصلتر توضیح بدید. من این کار رو با نرم افزار encoder تو ویندوز انجام می دم اما فرقش اینه که وب کم مستقیما به سرور وصل می شه

mtchivarly
April 1st, 2011, 03:24
شما مي تونين سيستمي كه وب كم بهش وصله ست را با خريد يك آي پي وليد به سرور تبديل كنيد و يا اينكه با يكي از كانالهاي ffserver ايتدا فايل را دريافت كنيد و سپس با ffmpeg با فرمت دلخواه روي فيد مربوطه stream كنيد.
سعي مي كنم آموزش گام به گام اين موضوع رو هم به زوي آماده كنم.در حال حاضر مفداري درگير سيسكو هستم.

CmanDesign
April 1st, 2011, 09:20
برای پخش استریمینگ داخل ویندوز میشه از برنامه ی vlc server استفاده کرد .. همه جور پروتکلی هم ساپورت میکنه ..

hamid.jafary
April 3rd, 2011, 09:30
در مورد Webcam، اگه کار عجله ای، میتونید موقتاً از سرویس رایگان megalive.com استفاده کنید.

astro.alireza
April 3rd, 2011, 09:51
در مورد Webcam، اگه کار عجله ای، میتونید موقتاً از سرویس رایگان megalive.com استفاده کنید.
نه، می خواستم یاد بگیرم. این که بشه تو سایزهای مختلف فرستاد که عالی می شه. فکر می کنم پخش زنده پهنای باند کمتری مصرف می کنه، درسته؟ فقط به اندازه فیلمی که داره پخش می شه.

hamid.jafary
April 3rd, 2011, 14:55
astro.alireza@
از نظر میزان Transfer که فرق چندانی نداره. ویدئو بالاخره باید دانلود بشه دیگه چه به صورت Progressive (دانلود معمولی) یا Stream (اگر User همچنان وصل باشه دیگه لازم نیست که Header دوباره فرستاده بشه و این یعنی صرفه جویی فقط در حد چند کیلو بایت).

CmanDesign@
VLC نسخه Linux هم داره و فکر میکنم هنوز RTMP رو پشتیبانی نمیکنه (برخلاف ffmpeg در نسخه اخیرش).

mtchivarly
April 3rd, 2011, 17:00
با سلام
دقيقا همينطوره
vlc نسخه لينوكسي داره و GUI هم داره و مي تونين در Gnome و KDE از اون استفاده كنين. اما شخصا قدرت ffmpeg اون هم از شل رو ترجيح مي دم.
توجه به اين نكته لازمه كه اگر سايتي 100 بازديد كننده داشته باشه كاش حجم 10 مگا در هر فايل مي تونه منجر به ا گيگ صرفه جويي در پهناي باند شه.
با ffmpeg راحت مي تونين آنلاين تغيير فرمت و كيفيت بدين. سايت هايي مثل آنلاين كانورت هم بهمين طريق كار مي كنند.
تغيير فرمت با ffmpeg را بالا توضيح دادم

hamid.jafary
April 14th, 2011, 16:58
توجه به اين نكته لازمه كه اگر سايتي 100 بازديد كننده داشته باشه كاش حجم 10 مگا در هر فايل مي تونه منجر به ا گيگ صرفه جويي در پهناي باند شه.

Cache چطوری باعث صرفه جویی در میزان Transfer میشه !؟

--------------------------------------------------------------------

http://www.webhostingtalk.ir/f46/23906 (http://www.webhostingtalk.ir/f46/23906/)