سلام
چيزي كه امروز تصميم دارم خدمتتون ارايه بدم مطلبي كه كمتر ديدين و يا شنيدين اما فوق العاده كاربردي.
شايد سايتهايي رو ديده باشين كه يك ويدئو را در كيفيت هاي مختلف با فرمت هاي مختلف ارايه مي دن يا حتي فرمت ها را تبديل مي كنند.
حتما سايت هايي را ديدين كه streaming انجام مي دهند و ويديو را بصورت آنلاين پخش مي كنند.
اينجا مي خوام در اين مورد توضيح بدم .اما فكر نمي كنم بتونم همشو يك جا توضيح بدم. در چند پست ان شاالله انجامش مي دم.
قدم اول
به ابزاري نياز داريم كه ويدئو هارو دانلود كنيم.
بسيار خوب اين قسمت ساده است همون مامند wget قديمي.
قدم دوم
حالا كه ويدئو ها رو دانلود كرديم بايد به طريقي بتونيم اون ها را مديريت كنيم. لينوكس به عنوان يك سيستم عامل سرور امكتنات فوق العاده اي را د هختيارمون مي ذاره اون هم رايگان.
ابتدا بايد ffmpeg را نصب كنيم .ffmpeg به صورت rpm موجوده اما از اونجايي كه نصب dependency هاش به صورت دستي ديوانه كننده است به سراغ yum مي ريم.
براي نصب ffmpeg بوسيله yum بايد يك repo به yum اضافه كنيم به اين صورت عمل مي كنيم.
در داخل دايركتوري /etc/yum.repos.d يك فايل با نام 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
حالا فايل را سيو مي كنيم و از اديتورvi خارج مي شيم
حالا كه repo مورد نياز را اضافه كرديم مي ريم و با استفاده از yum ، پكيج ffmpeg را نصب ميكنيم. به شكل زير.
yum install ffmpeg ffmpeg-devel
حالا منتظر ميمونيم تا نصب به پايان برسه احتمالا در فآخر فرايند نصب به warning برمي خورين كه باعث ميشه نصب كامل نشه براي حل اين مشكل rpm زير رو نصب كنين.
rpm -Uhv
بعد از نصب 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 را نصب كرده باشين.پس به طريق زير عمل مي كنيم.
و حالا نصبflvtool2
و حالا كار ما تقريبا تمومه البته اگه بخواين مي تونين mplayer و mencoder را هم نصب كنين.
قدم سوم
در ايم مرحله يك فايل را به صورت نمونه تبديل مي كنيم.
ffmpeg -i input.flv -r 24 –s cif output.mp4
فكر ميكنم كه اين دستور كاملا واضح باشه
Input=فايل مبدا
Output فايل مقصد=
R=frame rate
S=اندازه تصوير
در مرحله هاي بعدي آرگومان هاي ffmpeg را كاملا توضيح مي ديم و پس از آشنايي كافي مي ريم به سراغ streaming . و البته نصب ffmpeg را هم به عنوان يك extensionphp فراموش كردم توضيح بدم كه ميمونه طلب شما.