FFPLAY(1) راهنمای ابزارهای چندرسانه‌ای FFPLAY(1)

ffplay - پخش‌کننده رسانه‌ای بسیار ساده و پرتابل FFplay

ffplay [گزینه‌ها] [نشانی_اینترنتی_ورودی]

برنامه FFplay یک پخش‌کننده رسانه‌ای بسیار ساده و پرتابل است که از کتابخانه‌های FFmpeg و کتابخانه SDL استفاده می‌کند. این برنامه بیشتر به عنوان بستری برای آزمودن رابط‌های برنامه‌نویسی مختلف FFmpeg به کار می‌رود.

تمامی گزینه‌های عددی، چنانچه به نحو دیگری مشخص نشده باشد، یک رشته نشان‌دهنده یک عدد را به عنوان ورودی می‌پذیرند که ممکن است با یکی از پیشوندهای یکای بین‌المللی (SI) مانند 'K'، 'M' یا 'G' همراه باشد.

اگر حرف 'i' به پیشوند یکای SI الحاق شود، پیشوند کامل به عنوان پیشوند برای مضارب دودویی تفسیر می‌شود که بر پایه توان‌های ۱۰۲۴ به جای توان‌های ۱۰۰۰ هستند. افزودن 'B' به پیشوند یکای SI مقدار را در ۸ ضرب می‌کند. این اجازه می‌دهد تا به عنوان مثال از 'KB'، 'MiB'، 'G' و 'B' به عنوان پسوندهای عددی استفاده شود.

گزینه‌هایی که آرگومان دریافت نمی‌کنند، گزینه‌های بولی هستند و مقدار مربوطه را روی درست (true) تنظیم می‌کنند. می‌توان آن‌ها را با افزودن پیشوند "no" به نام گزینه روی نادرست (false) تنظیم کرد. به عنوان مثال استفاده از "-nofoo" گزینه بولی با نام "foo" را روی false قرار می‌دهد.

گزینه‌های دارای آرگومان از یک ساختار نحوی ویژه پشتیبانی می‌کنند که در آن آرگومان داده‌شده در خط فرمان به عنوان مسیری به فایلی تفسیر می‌شود که مقدار واقعی آرگومان از آن بارگیری می‌شود. برای استفاده از این قابلیت، یک ممیز رو به جلو '/' بلافاصله پیش از نام گزینه (پس از خط تیره ابتدایی) اضافه کنید. برای نمونه:

ffplay -/vf filter.script input.mp4

توصیف گراف فیلتر را از فایلی به نام filter.script بارگیری می‌کند.

برخی گزینه‌ها برای هر استریم به طور جداگانه اعمال می‌شوند، مانند نرخ بیت یا کدک. تعیین‌کننده‌های استریم برای مشخص کردن دقیق اینکه یک گزینه معین به کدام استریم یا استریم‌ها تعلق دارد، استفاده می‌شوند.

تعیین‌کننده استریم رشته‌ای است که معمولاً به نام گزینه الحاق شده و با دو نقطه از آن جدا می‌شود. به عنوان مثال "-codec:a:1 ac3" شامل تعیین‌کننده استریم "a:1" است که با دومین استریم صوتی مطابقت دارد؛ بنابراین کدک ac3 را برای دومین استریم صوتی انتخاب می‌کند.

یک تعیین‌کننده استریم می‌تواند با چندین استریم مطابقت داشته باشد، به طوری که گزینه روی تمام آن‌ها اعمال شود. برای مثال تعیین‌کننده استریم در "-b:a 128k" با تمامی استریم‌های صوتی مطابقت دارد.

تعیین‌کننده استریم خالی با تمام استریم‌ها مطابقت دارد. به عنوان مثال "-codec copy"; یا "-codec: copy" تمام استریم‌ها را بدون بازکدگذاری کپی می‌کند.

شکل‌های ممکن تعیین‌کننده‌های استریم عبارتند از:

با استریم دارای این اندیس مطابقت دارد. شماره‌گذاری استریم‌ها بر اساس ترتیب شناسایی توسط libavformat است.
مقدار stream_type یکی از موارد زیر است: 'v' یا 'V' برای ویدیو، 'a' برای صدا، 's' برای زیرنویس، 'd' برای داده و 't' برای پیوست‌ها. 'v' با تمام استریم‌های ویدیو مطابقت دارد، 'V' تنها با استریم‌های ویدیویی که تصاویر پیوست‌شده، بندانگشتی‌ها یا طرح‌های جلد نیستند مطابقت دارد.
با استریم‌هایی که در برنامه با شناسه program_id قرار دارند مطابقت دارد.
#stream_id or i:stream_id
تطبیق استریم بر پایه شناسه استریم (مانند PID در کانتینر MPEG-TS).
با استریم‌هایی که برچسب فراداده‌ای key با مقدار مشخص‌شده دارند مطابقت پیدا می‌کند.
با استریم‌های با پیکربندی قابل استفاده مطابقت دارد (کدک تعریف شده و اطلاعات ضروری مانند ابعاد تصویر یا نرخ نمونه‌برداری صدا موجود باشند).

این گزینه‌ها میان تمامی ابزارهای مجموعه ff* به صورت مشترک پشتیبانی می‌شوند.

نمایش مجوز برنامه (License).
نمایش راهنما. یک پارامتر اختیاری می‌تواند برای چاپ راهنما درباره یک مورد خاص مشخص شود:
چاپ گزینه‌های پیشرفته ابزار علاوه بر گزینه‌های پایه.
چاپ فهرست کامل تمامی گزینه‌ها شامل گزینه‌های مشترک و خصوصی برای انکودرها، دیکودرها، دی‌ماکسرها، ماکسرها، فیلترها و غیره.
چاپ اطلاعات دقیق درباره دیکودر مشخص‌شده با decoder_name.
چاپ اطلاعات تفصیلی درباره انکودر مشخص‌شده با encoder_name.
چاپ اطلاعات تفصیلی درباره دی‌ماکسر مشخص‌شده با demuxer_name.
چاپ اطلاعات تفصیلی درباره ماکسر مشخص‌شده با muxer_name.
چاپ اطلاعات کامل درباره فیلتر مشخص‌شده با filter_name.
نمایش نسخه برنامه و کتابخانه‌های مورد استفاده.
نمایش پیکربندی ساخت برنامه.
نمایش تمام قالب‌های در دسترس (شامل دستگاه‌ها).
نمایش تمامی دی‌ماکسرهای در دسترس.
نمایش تمامی ماکسرهای در دسترس.
نمایش تمامی دستگاه‌های ورودی و خروجی در دسترس.
نمایش تمام کدک‌های شناخته‌شده برای libavcodec.
نمایش دیکودرهای در دسترس.
نمایش انکودرهای در دسترس.
نمایش تمامی فیلترهای در دسترس.
نمایش تمامی پروتکل‌های شبکه و فایل در دسترس.
تنظیم سطح گزارش‌دهی پیام‌ها (LogLevel)؛ گزینه‌های ممکن شامل: quiet, panic, fatal, error, warning, info, verbose, debug.
نام مستعار برای -loglevel.
تولید گزارش کامل خط فرمان و لاگ در فایلی با نام مشخص در دایرکتوری جاری.
پنهان کردن بنر پیش‌فرض متنی حاوی اطلاعات کپی‌رایت و بیلد.

این گزینه‌ها مستقیماً توسط کتابخانه‌های libavformat، libavdevice و libavcodec ارائه می‌شوند. برای مشاهده فهرست گزینه‌ها از -help استفاده کنید.

اجبار به نمایش با این عرض (عرض تصویر).
اجبار به نمایش با این ارتفاع (ارتفاع تصویر).
شروع در حالت تمام صفحه (fullscreen).
غیرفعال کردن صدا.
غیرفعال کردن ویدیو.
غیرفعال کردن زیرنویس.
پرش به موقعیت زمانی مشخص‌شده. توجه داشته باشید که در بیشتر قالب‌ها امکان پرش کاملاً دقیق وجود ندارد، بنابراین ffplay به نزدیک‌ترین نقطه کلیدی به این موقعیت پرش می‌کند.
پخش به میزان مشخص‌شده از صدا/ویدیو (به ثانیه).
پرش بر پایه بایت به جای زمان.
تنظیم فاصله سفارشی پرش (بر حسب ثانیه) هنگام استفاده از کلیدهای چپ/راست. پیش‌فرض ۱۰ ثانیه است.
غیرفعال کردن نمایش گرافیکی تصویر.
نمایش پنجره بدون حاشیه (borderless window).
پنجره همواره در بالا قرار داشته باشد.
تنظیم بلندی صدای آغازین. 0 به معنای سکوت و 100 به معنای حجم صدای طبیعی بدون کاهش یا افزایش است.
اجبار قالب فایل ورودی.
تنظیم عنوان پنجره (پیش‌فرض نام فایل ورودی است).
تنظیم موقعیت افقی x برای سمت چپ پنجره (پیش‌فرض پنجره وسط‌چین است).
تنظیم موقعیت عمودی y برای بالای پنجره (پیش‌فرض پنجره وسط‌چین است).
تکرار پخش فیلم به میزان <تعداد> بار. مقدار 0 به معنای تکرار نامحدود است.
تنظیم حالت نمایش مورد استفاده. مقادیر ممکن عبارتند از:
0, video
نمایش ویدیو
1, waves
نمایش امواج صوتی
2, rdft
نمایش باند فرکانس صوتی با استفاده از RDFT

مقدار پیش‌فرض "video" است. با فشردن کلید w می‌توانید بین حالت‌ها جابه‌جا شوید.

ایجاد گراف فیلتر مشخص‌شده و استفاده از آن برای فیلتر کردن استریم ویدیو.
گراف فیلتر برای اعمال روی صدای ورودی.
خواندن از نشانی ورودی.

چاپ آمارهای مختلف پخش شامل مدت استریم، پارامترهای کدک، موقعیت فعلی در استریم و رانش همگام‌سازی صدا/تصویر. برای غیرفعال کردن از "-nostats" استفاده کنید.
بهینه‌سازی‌های غیراستاندارد برای افزایش سرعت.
تولید pts (برچسب‌های زمانی ارائه).
تنظیم ساعت مرجع اصلی روی صدا ("type=audio")، ویدیو ("type=video") یا خارجی ("type=ext"). پیش‌فرض صدا است.
انتخاب استریم صوتی دلخواه با استفاده از تعیین‌کننده استریم داده‌شده.
انتخاب استریم ویدیویی دلخواه با استفاده از تعیین‌کننده استریم داده‌شده.
انتخاب استریم زیرنویس دلخواه با استفاده از تعیین‌کننده استریم داده‌شده.
خروج خودکار از برنامه هنگام پایان یافتن پخش ویدیو.
خروج در صورت فشرده شدن هر کلیدی روی صفحه‌کلید.
خروج در صورت کلیک شدن هر دکمه‌ای از موش‌واره (ماوس).
اجبار پیاده‌سازی یک دیکودر خاص برای استریم مشخص‌شده با media_specifier (شامل "a" برای صدا، "v" برای ویدیو و "s" برای زیرنویس).
اجبار دیکودر صوتی خاص.
اجبار دیکودر ویدیویی خاص.
اجبار دیکودر زیرنویس خاص.
چرخش خودکار ویدیو بر اساس فراداده فایل. به طور پیش‌فرض فعال است. برای غیرفعال کردن از -noautorotate استفاده کنید.
ریختن فریم‌های ویدیویی (Drop frames) در صورت عدم هماهنگی ویدیو با صدا.
نامحدود کردن اندازه بافر ورودی، خواندن هرچه سریع‌تر داده‌ها از ورودی.
تعیین تعداد رشته‌های پردازشی (threads) مورد استفاده برای پایپ‌لاین فیلتر.
استفاده از رندرکننده Vulkan به جای رندرکننده داخلی SDL. وابسته به libplacebo است.
استفاده از شتاب‌دهنده سخت‌افزاری برای رمزگشایی.

کلیدهای میانبر در زمان پخش:

خروج از برنامه.
جابه‌جایی بین حالت تمام‌صفحه و پنجره‌ای.
مکث (Pause) و ادامه پخش.
قطع/وصل صدا (Mute).
9, 0
/, *
کاهش و افزایش حجم صدا به ترتیب.
جابه‌جایی بین کانال‌های صوتی در برنامه جاری.
جابه‌جایی بین کانال‌های ویدیویی.
جابه‌جایی بین کانال‌های زیرنویس در برنامه جاری.
جابه‌جایی بین برنامه‌ها (Programs).
جابه‌جایی بین حالت‌های نمایش صوتی یا فیلترهای ویدیویی.
گام به فریم بعدی (نمایش فریم‌به‌فریم).
چپ/راست (left/right)
پرش به عقب/جلو به میزان ۱۰ ثانیه (یا فاصله سفارشی با -seek_interval).
پایین/بالا (down/up)
پرش به عقب/جلو به میزان ۱ دقیقه.
صفحه بعد/صفحه قبل (page down/page up)
پرش به فصل قبل/بعد (یا ۱۰ دقیقه عقب/جلو در صورت عدم وجود فصل‌ها).
راست‌کلیک موش‌واره (right mouse click)
پرش به درصدی از فایل متناظر با عرض پنجره کلیک‌شده.
دوبار‌کلیک چپ موش‌واره (left mouse double-click)
تغییر وضعیت تمام صفحه.

ffplay-all(1), ffmpeg(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)

توسعه‌دهندگان FFmpeg.

برای جزئیات درباره نویسندگی، به تاریخچه گیت پروژه در https://git.ffmpeg.org/ffmpeg مراجعه نمایید.

FFmpeg