نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: مشکل گرفتن اسکرین شات با ffmpeg

  1. #1
    عضو جدید
    تاریخ عضویت
    Jun 2010
    نوشته ها
    13
    تشکر تشکر کرده 
    9
    تشکر تشکر شده 
    8
    تشکر شده در
    4 پست

    پیش فرض مشکل گرفتن اسکرین شات با ffmpeg

    سلام خدمت دوستان
    من یه سرور اختصاصی دارم و سیستم عامل centos 7 روش نصبه
    من با استفاده از دستور زیر میخوام از فایل ویدئوم اسکرین شات بگیرم ولی خروجی که میده به صورت زیر میشه

    image.jpg

    دستوری هم که میزنم اینه
    کد:
    ffmpeg -y -ss 00:00:01.000 -i 'video.mp4' -vf 'crop=w=1280:h=720:x=0:y=0,scale=w=720:h=406,pad=w=720:h=406:x=0:y=0:color=0xFFFFFF' -f mjpeg -vframes 1 -q:v 2 'image.jpg'
    ممنون میشم راهنماییم کنید بدونم مشکل از کجاست
    ویرایش توسط alasht : August 7th, 2021 در ساعت 14:50

  2. # ADS




     

  3. #2
    عضو انجمن
    تاریخ عضویت
    Mar 2013
    نوشته ها
    157
    تشکر تشکر کرده 
    34
    تشکر تشکر شده 
    251
    تشکر شده در
    159 پست

    پیش فرض پاسخ : مشکل گرفتن اسکرین شات با ffmpeg

    چرا از فیل-تر deinterlace استفاده میکنی، deinterlace یک فیل-تر هست برای از بین بردن یک نوع نویز خاص تو ویدیوها است.
    برای ذخیره تصویر از یک ویدیو تو باید از گزینه vframes- استفاده کنی.

    این یک نمونه دستور:

    کد:
    ffmpeg -ss 10 -i video.mp4 -vframes 1 -q:v 2 output.jpg
    ss- می تونی تعیین کننده زمان خاص رو برات عکس بگیره، نمونه بالا ثانیه ۱۰ رو عکس میگیره.

    vframe- برای ارسال فریم به خروجی است، عدد جلوش شماره فریم است.

    q:v- برای تعیین کیفیت خروجی است، از رنج 1-31 میشه گذاشت ، عددش هر چی پایین تر باشه، کیفیت بالاتره، رنج 2-5 بزاری کیفیت خوب کافیه.
    ویرایش توسط firebox : August 7th, 2021 در ساعت 14:09

  4. تعداد تشکر ها ازfirebox به دلیل پست مفید


  5. #3
    عضو جدید
    تاریخ عضویت
    Jun 2010
    نوشته ها
    13
    تشکر تشکر کرده 
    9
    تشکر تشکر شده 
    8
    تشکر شده در
    4 پست

    پیش فرض پاسخ : مشکل گرفتن اسکرین شات با ffmpeg

    ممنون از پاسختون
    دستوری که دادید درست کار میکنه
    فقط یه اشتباهی رخ داد من دستورمو اشتباه فرستادم
    دستوری که استفاده میکنم اینه
    کد:
    ffmpeg -y -ss 00:00:01.000 -i 'video.mp4' -vf 'crop=w=1280:h=720:x=0:y=0,scale=w=720:h=406,pad=w=720:h=406:x=0:y=0:color=0xFFFFFF' -f mjpeg -vframes 1  'image.jpg'
    این دستور کدوم قسمتش مشکل داره که خروجی به اون صورت میشه ؟
    گزینه q:v- رو بهش اضافه کردم بازم خروجی خراب میده

    - - - Updated - - -

    مشکلش با دستور scale هست
    وقتی scale رو حذف میکنم خروجی درست نشون میده ولی دیگه اون سایزی که میخوام نیست
    چه کارش باید کرد که درست بشه ؟
    ویرایش توسط alasht : August 7th, 2021 در ساعت 15:39

  6. #4
    عضو انجمن
    تاریخ عضویت
    Mar 2013
    نوشته ها
    157
    تشکر تشکر کرده 
    34
    تشکر تشکر شده 
    251
    تشکر شده در
    159 پست

    پیش فرض پاسخ : مشکل گرفتن اسکرین شات با ffmpeg

    کد:
    'crop=w=1280:h=720:x=0:y=0,scale=w=720:h=406,pad=w=720:h=406:x=0:y=0:color=0xFFFFFF'
    مشکل از scale نیست، مشکل از crop است، توی دستور بالا شما عرض ۱۲۸۰ و ارتفاع ۷۲۰ با مختصات x , y صفر تعریف کردید، بعد اندازه اش رو به عرض ۷۲۰ و ارتفاع ۴۰۶ تغییر دادید، آخرش هم یک پد با همین ارتفاع و عرض با زمینه سیاه تعریف کردید (که کاملا بی استفاده است، به خاطر اینکه شما نسبت تصویر رو کلا نادیده گرفتید.)
    الان تو دستور بالا اگر ویدیو با ارتفاع و عرض کمتر از ۱۲۸۰x۷۲۰ تعریف کنید، دستور crop خطا میده، چون مقدارش بیشتر از ارتفاع و عرض ویدیو است، مشکل دیگه اینکه اگر طول و عرض ویدیوتون بیشتر از 1280x720 باشه، تصویر خروجی تون توی کادر نیست، میشه از 1280*720 از گوشه سمت بالا سمت راست ویدیو.

    الان فکر کنم شما میخواهید یک عکس از ویدیو بگیرید، با حفظ نسبت تصویر به سایز 720x406 تغییرش بدی، اگر نسبت تصویرش فرق داشت، سایز اصلی حفظ کنی و جای خالی پدینگ مشکی بهش بدی.

    کد:
    ffmpeg -y -ss 00:00:01.000 -i video.mp4 -vf "scale=720:406:force_original_aspect_ratio=decrease,pad=720:406:-1:-1:color=black" -vframes 1 -q:v 2 output.jpg

    توی دستور بالا من از force_original_aspect_ratio با مقدار decrease استفاده کردم، force_original_aspect_ratio دو تا مقدار داره یکی decrease برای زمانی است خروجی تصویر به صورت کاهش پیدا کنه برای یک سایز مشخص مقدار increase هم برای افزایش تصویر (تصویر رو جلو میاره) برای که یک سایز مشخص.

    این دستور برای این هست اگر بخواهید تصویر خروجی تون اگر نسبت تصویر اش 16:9 نباشه اما تصویر خروجی نهایی بدون هیچ بخش سیاه نداشته باشه و کامل پرش کنه

    کد:
    ffmpeg -y -ss 00:00:01.000 -i video.mp4 -vf "scale=720:406:force_original_aspect_ratio=increase,crop=720:406" -vframes 1 -q:v 2 output.jpg
    ویرایش توسط firebox : August 7th, 2021 در ساعت 17:10

  7. تعداد تشکر ها ازfirebox به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. کمک در نصب FFmpeg و FFmpeg-PHp در سنتوس
    توسط speednet در انجمن سوالات و مشکلات
    پاسخ ها: 0
    آخرين نوشته: May 5th, 2017, 13:51
  2. درخواست آموزش نصب ffmpeg و ffmpeg-php در Centos7.3
    توسط monica در انجمن سوالات و مشکلات
    پاسخ ها: 4
    آخرين نوشته: January 2nd, 2017, 12:29
  3. کانفیگ ffmpeg
    توسط AQsun در انجمن به دنبال کارمند هستم
    پاسخ ها: 2
    آخرين نوشته: October 20th, 2015, 17:07
  4. مشکل در ffmpeg
    توسط x0r در انجمن سوالات و مشکلات
    پاسخ ها: 11
    آخرين نوشته: February 19th, 2014, 09:40

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •