امروز طی وبگردیهام در جستجوی یک برنامه برای تبدیل فایلهای صوتی و تصویری به برنامه FFmpeg رسیدم. بد ندیدم یه پست خارجکی رو ترجمه کنم و داخل بلاگ بزارم تا بقیه هم استفاده کنند! امیدوارم مفید واقع بشه!
چند روز پیش یه برنامه .flv رو از سایتی دریافت کردم. من میخواستم که اون رو به فرمت avi تبدیل کنم (میدونم آزاد نیست ولی چارهای ندارم میفهمی؟؟) کل نت رو زیر و رو کردم تا این رو یافتم. FFmpeg اعظم
. یک ابزار خط فرمانی برای تبدیل فایلهای چندرسانهای به فرمتهای مختلف. نه تنها فقط فایلهای ویدیویی رو که فایلهای صوتی هم کانورت میکنه. برای اینکه مطمئن بشید که FFmpeg روی سیستم شما نصبه! خب مطمئن بشید دیگه! خلاصه اگه نصب نیست مدیربسته توزیع خودتون رو آتیش کنید و ffmpeg رو سرچ کنید و نصبش کنید البته اگه نصب نیست!
مثلاً برای اوبونتو sudo apt-get install ffmpeg یا برای آرچ sudo pacman -S ffmpeg یا هرچی!
الان نصب شد! حالا باید چیکار کنیم؟ یه ترمینال باز کنید. میدونم خیلیها از این عبارت میترسند ولی سعی کنید نترسید! اگه کار باهاش رو یاد بگیرید با ترمینال خیلی سریعتر از کار با رابطهای گرافیکی به مرادتون میرسید. میگی نه؟ نگا کن!
فرم کلی اینجوریه:
$ ffmpeg [[infile options][`-i' infile]]… {[outfile options] outfile}…
گزینههایی که قبل از infile میاد روی infile اثر میکنه و بعدیها روی outfile.
در اینجا من یه فایل flv دارم و میخوام اون رو به avi تبدیل کنم. اینجوری:
$ ffmpeg -i infile.flv outfile.avi
تموم شد! واقعاً تموم شد شوخی ندارم که! همونجا که دستور رو اجرا کردید برید و فایل outfile.avi رو بردارید! خوش اومدید!
یادتون باشه که به صورت پیشفرض ffmpeg سعی میکنه بهترین کیفیت رو برای فایل خروجی ارائه بده و پارامترهای مشابهی برای صوت و تصویر ورودی و خروجی در نظر میگیره.
اگه شما میخواید که فرمتها و کدکهای موجود بر روی سیستم خودتون رو ببینید دستور زیر کمکتون میکنه!
$ ffmpeg -formats
FFmpeg از .۳gp, .avi, .mp3, .mp4, .mvi, .rm , .mkv و خیلی از فرمتهای دیگه پشتیبانی میکنه.
چند تا گزینه برای ویدیو که ممکنه به دردتون بخوره رو با هم مرور میکنیم!
-b: بیتریت رو مشخص میکنه! پیشفرض روی ۲۰۰kb/s ست شده.
-r: سرعت فریم یا فریم ریت به HZ. در حالت پیشفرض ۲۵Hz ـه.
-s: سایز فریم. به صورت پیشفرض این مقدار با مقدار فایل ورودی برابره. فرمت هم به صورت . عرضدرارتفاع است (wxh). در ضمن wxh هم برابره با ۱۶۰×۱۲۸ ـه. لیستی از مقادیر رو ببینید. مثلاً برای بدست آوردن خروجی ۶۴۰×۳۵۰ باید از ega استفاده کنید!
‘sqcif’
۱۲۸×۹۶
‘qcif’
۱۷۶×۱۴۴
‘cif’
۳۵۲×۲۸۸
‘۴cif’
۷۰۴×۵۷۶
‘۱۶cif’
۱۴۰۸×۱۱۵۲
‘qqvga’
۱۶۰×۱۲۰
‘qvga’
۳۲۰×۲۴۰
‘vga’
۶۴۰×۴۸۰
‘svga’
۸۰۰×۶۰۰
‘xga’
۱۰۲۴×۷۶۸
‘uxga’
۱۶۰۰×۱۲۰۰
‘qxga’
۲۰۴۸×۱۵۳۶
‘sxga’
۱۲۸۰×۱۰۲۴
‘qsxga’
۲۵۶۰×۲۰۴۸
‘hsxga’
۵۱۲۰×۴۰۹۶
‘wvga’
۸۵۲×۴۸۰
‘wxga’
۱۳۶۶×۷۶۸
‘wsxga’
۱۶۰۰×۱۰۲۴
‘wuxga’
۱۹۲۰×۱۲۰۰
‘woxga’
۲۵۶۰×۱۶۰۰
‘wqsxga’
۳۲۰۰×۲۰۴۸
‘wquxga’
۳۸۴۰×۲۴۰۰
‘whsxga’
۶۴۰۰×۴۰۹۶
‘whuxga’
۷۶۸۰×۴۸۰۰
‘cga’
۳۲۰×۲۰۰
‘ega’
۶۴۰×۳۵۰
‘hd480’
۸۵۲×۴۸۰
‘hd720’
۱۲۸۰×۷۲۰
‘hd1080’
۱۹۲۰×۱۰۸۰
-aspect: هم نمود رو مشخص میکنه! ۴:۳, ۱۶:۹ یا ۱٫۳۳۳۳ یا ۱٫۷۷۷۷٫
-vcodec: با این گزینه هم مشخص میکنید که از چه کدکی استفاده کنه!
حالا چند تا از کزینههای مفید برای فایلهای صوتی:
-ar: فرکانس رو مشخص میکنه و پیشفرض روی ۴۱۰۰۰KHz ـه.
-ab بیتریت رو مشخص میکنه و مقدار پیشفرض روی ۶۴k ـه.
-acodec: این گزینه هم مشخص میکنه که ffmpeg از چه کدکی برای کانورت استفاده کنه.
چند تا مثال:
ffmpeg -i input.avi -b 64k output.avi
با این کار بیتریت فایل خروجی رو روی ۶۴kbit/s ست میکنیم
ffmpeg -r 1 -i input.m2v -r 24 output.avi
با استفاده از -r 1 ما فریم ریت فایل ورودی رو فورس میکنیم که روی ۱ فرم بر ثانیه باشه و با -r 24 فرم ریت خروجی رو روی ۲۴ قرار میدیم.
ffmpeg -i test.wav -acodec mp3 -ab 64k test.mp3
تو این مثال ffmpeg رو برای فایلهای صوتی مورد عنایت قرار دادیم
. ما یه فایل wav رو به یه فایل mp3 تغییر فرمت دادیم. همونجور که قبلاً هم گفتیم -acodec mp3 به ffmpeg فشار میاره تا از این کدک استفاده کنید و فایل خروجی رو بسازه. -ab هم بیتریت ۶۴k رو مورد استفاه قرار میده.
ffmpeg -i video.avi -ar 22050 -ab 32 -s 640×۴۸۰ video.mp4
استفاده از -ar در بالا فرکانس فایل صوتی رو روی ۲۲۰۵۰ قرار میده. و -ab بیتریت رو روی ۶۴k ست میکنه و در نهایت -s سایز فریمها رو روی ۶۴۰×۴۸۰ قرار میده. به جای ۶۴۰×۴۸۰ مثلاً میتونید از vga استفاده کنید. مثال زیر رو ببینید!
ffmpeg -i video.avi -ar 22050 -ab 32 -s vga video.mp4
مقادیر موجود برای هر گزینه رو میتونید از این لینک ببینید!
شاید در آینده یه پست مفصلتر نوشتم یا همین نوشته رو ویرایش کردم.
راستی داشتم با شاهین حرف میزدم گفت که winff هم یه رابط خوب برای ffmpeg هست. باید اون رو هم تست کنم
.






