انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: چگونه تبدیل چندین نوع Video با یک دستور؟  (دفعات بازدید: 5312 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
چگونه تبدیل چندین نوع Video با یک دستور؟
« : 26 امرداد 1394، 11:29 ق‌ظ »
سلام دوستان

همانطور که می دانید H.265 HEVC یک روش فشرده سازی خیلی خوب برای Video ها هست.

حالا من تعداد Video هایی که دارم خیلی زیاد.

و بخوام بشینم تک تک بررسی کنم که چه نوعی هستند و دستور متناسب با آن را بزنم وقت گیر میشه.

می خواستم بدونم از آیا دستوری هست که بتونه AVI , MKV , MP4 ,... را تشخیص بده و تبدیل کنه؟

نکته: می خوام تمام Video ها به MKV تبدیل بشند. ( برای ذخیره زیرنویس و صدای دوبله در یک جا )

به طور کلی دستوری می خوام که تمام Video ها را به MKV H.265 HEVC تبدیل کنه.

اگر هم برنامه ای برای این کار باشه مشکلی نیست. ولی دستور باشه بهتره ;)

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #1 : 26 امرداد 1394، 11:32 ق‌ظ »
سلام دوستان

همانطور که می دانید H.265 HEVC یک روش فشرده سازی خیلی خوب برای Video ها هست.

حالا من تعداد Video هایی که دارم خیلی زیاد.

و بخوام بشینم تک تک بررسی کنم که چه نوعی هستند و دستور متناسب با آن را بزنم وقت گیر میشه.

می خواستم بدونم از آیا دستوری هست که بتونه AVI , MKV , MP4 ,... را تشخیص بده و تبدیل کنه؟

نکته: می خوام تمام Video ها به MKV تبدیل بشند. ( برای ذخیره زیرنویس و صدای دوبله در یک جا )

به طور کلی دستوری می خوام که تمام Video ها را به MKV H.265 HEVC تبدیل کنه.

اگر هم برنامه ای برای این کار باشه مشکلی نیست. ولی دستور باشه بهتره ;)
میخوای در خط فرمان این کار انجام بگیره؟
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #2 : 26 امرداد 1394، 11:36 ق‌ظ »
میخوای در خط فرمان این کار انجام بگیره؟
بله، در آخر جمله اشاره کردم

اگر هم برنامه ای برای این کار باشه مشکلی نیست. ولی دستور باشه بهتره ;)

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #3 : 26 امرداد 1394، 01:27 ب‌ظ »
از winff استفاده کن، یک رابط برای ffmpeg عه و می‌تونی پارامترهای خودت رو برای خروجی‌ش تنظیم کنی.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #4 : 26 امرداد 1394، 01:35 ب‌ظ »
از winff استفاده کن، یک رابط برای ffmpeg عه و می‌تونی پارامترهای خودت رو برای خروجی‌ش تنظیم کنی.
خیلی ممنون

اما برنامه ای که در مخازن رسمی باشه، نیست؟

چون زیاد به repository ها اعتماد ندارم.

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #5 : 26 امرداد 1394، 01:59 ب‌ظ »
winff توی مخازن رسمی آرچ هم هست! اوبونتو که جای خود داره. (:

آفلاین hamidrezakp

  • Sr. Member
  • *
  • ارسال: 432
  • جنسیت : پسر
  • Life is Good With GNU/Linux
    • Hamidrezakp Web Site
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #6 : 26 امرداد 1394، 02:20 ب‌ظ »
من با ffmpeg یک ویدیوی 25 مگابایتی 720p h.x264 رو به mkv 720p h.x265 تبدیل کردم که حجمش 9.5 مگ شد و 15 دقیقه طول کشید(سیستتم رم 2. و cpu intel pentium dual core (3gh هست ;D
HamidRezaKP.ir
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #7 : 26 امرداد 1394، 04:42 ب‌ظ »
winff توی مخازن رسمی آرچ هم هست! اوبونتو که جای خود داره. (:
بله درسته اما نسخه هاشون فرق میکنه.

ولی الان که دقت کردم، دیدم تفاوت زیادی نیست.
دارم نصب میکنم تا امتحانش کنم.

من با ffmpeg یک ویدیوی 25 مگابایتی 720p h.x264 رو به mkv 720p h.x265 تبدیل کردم که حجمش 9.5 مگ شد و 15 دقیقه طول کشید(سیستتم رم 2. و cpu intel pentium dual core (3gh هست ;D
اگر بخواد اینطوری باشه برای کل مجموعه ای که دارم باید بیش از ۱ سال صبر کنم.  :o

دوستان روش یا برنامه ای که سریعتر باشه نیست؟

RAM: 4GiB SODIMM DDR3 Synchronous 1333 MHz
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #8 : 26 امرداد 1394، 05:10 ب‌ظ »
نصبش کردم.

اما یک مشکل، اصلا گزینه ای برای تبدیل به MKV نمی بینم، کجاست؟ ( AVI , 3GP , FLV ,... هست، اما MKV نیست )
شاید بخوام در زمان تبدیل دوبله و زیرنویس اضافه کنم. اما هیچ گزینه ای برای این موارد نمی بینم.

حالا جدا از اون کجا باید تعیین کنم که به H.265 HEVC فشرده بشه؟

همه چیز ساده بنظر میاد، اما من چیزی پیدا نمی کنم.

با ffmpeg کار کردم و خیلی هم خوبه.
اما نمی دونم باید چه دستوری بزنم که بشه چندین Video از نوع های مختلف را باهم تبدیل کنه؟!

آفلاین hamidrezakp

  • Sr. Member
  • *
  • ارسال: 432
  • جنسیت : پسر
  • Life is Good With GNU/Linux
    • Hamidrezakp Web Site
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #9 : 26 امرداد 1394، 06:29 ب‌ظ »
نصبش کردم.

اما یک مشکل، اصلا گزینه ای برای تبدیل به MKV نمی بینم، کجاست؟ ( AVI , 3GP , FLV ,... هست، اما MKV نیست )
شاید بخوام در زمان تبدیل دوبله و زیرنویس اضافه کنم. اما هیچ گزینه ای برای این موارد نمی بینم.

حالا جدا از اون کجا باید تعیین کنم که به H.265 HEVC فشرده بشه؟

همه چیز ساده بنظر میاد، اما من چیزی پیدا نمی کنم.

با ffmpeg کار کردم و خیلی هم خوبه.
اما نمی دونم باید چه دستوری بزنم که بشه چندین Video از نوع های مختلف را باهم تبدیل کنه؟!

من از این دستور استفاده کردم:
ffmpeg -i video.mp4 -c:a copy -c:v libx265 video-h265.mp4سیستمت خوبه از من خیلی سریعتر تبدیل میکنه
HamidRezaKP.ir
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #10 : 26 امرداد 1394، 08:38 ب‌ظ »
من از این دستور استفاده کردم:
ffmpeg -i video.mp4 -c:a copy -c:v libx265 video-h265.mp4سیستمت خوبه از من خیلی سریعتر تبدیل میکنه
خیلی ممنون اما چند مشکل

۱− آیا H.265 HEVC باعث کاهش کیفیت میشه؟

چون برای نمونه دستور زیر را زدم و بعد از تبدیل ۴ دقیقه از Video آن را متوقف کردم
ffmpeg -i Barely.Lethal.2015.720p.BluRay.mkv -c:a copy -c:v libx265 video-h265.mkv
frame= 5759 fps=9.8 q=-0.0 Lsize=   18675kB time=00:04:00.36 bitrate= 636.5kbits/s   
نکته ای که وجود داره کیفیت کاهش پیدا کرده.

http://s6.uplod.ir/i/00661/dupozj5ct9lj.png
http://s6.uplod.ir/i/00661/wt6v3zrsk95h.png

۲− همانطور که در بالا اشاره کردم بعد از ۴ دقیقه از تبدیل Video عملیات را متوقف کردم.
اما نکته ای که هست اینه که واقعا ۴ دقیقه تبدیل طول کشیده.

یعنی با این حساب اگر یک Video حدود ۲ ساعت باشه، مدت تبدیل هم ۲ ساعت میشه. ( بیش از ۱۰ بار امتحان کردم، حتی با Video با مدت ۲ دقیقه همین نتیجه بود. )

راهی نیست که سریعتر انجام بشه؟

مبدل دیگه ای نیست؟

۳− تازه بعد از رفع مشکلات بالا، چطوری می تونم از دستور ffmpeg طوری استفاده کنم که به تمام پوشه ها سر بزنه و هر Video که پیدا کرد تبدیل کنه به MKV H.265 HEVC ؟؟؟

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #11 : 26 امرداد 1394، 09:45 ب‌ظ »
۱− آیا H.265 HEVC باعث کاهش کیفیت میشه؟

چون برای نمونه دستور زیر را زدم و بعد از تبدیل ۴ دقیقه از Video آن را متوقف کردم
ffmpeg -i Barely.Lethal.2015.720p.BluRay.mkv -c:a copy -c:v libx265 video-h265.mkv
frame= 5759 fps=9.8 q=-0.0 Lsize=   18675kB time=00:04:00.36 bitrate= 636.5kbits/s   
نکته ای که وجود داره کیفیت کاهش پیدا کرده.

http://s6.uplod.ir/i/00661/dupozj5ct9lj.png
http://s6.uplod.ir/i/00661/wt6v3zrsk95h.png
هر تبدیلی طبیعتاً از نظر تئوری کیفیت رو یک مقدار پایین می‌آره، ولی نه حدّی که یک انسان معمولی بتونه با چشم غیرمسلّح متوجّه بشه. این دو تا تصویر که گذاشتی به نظر می‌رسه از یک فریم یکسان نیستن اصلاً. اگه می‌خوای کیفیتی دقیقاً یکسان با x264 داشته باشی، باید از همون منبعی که x264 ایجاد شده،‌ مستقیم x265 بگیری. مثلاً بلوری رو این‌بار به‌جای x264 با x265 ریپ کنی.


۲− همانطور که در بالا اشاره کردم بعد از ۴ دقیقه از تبدیل Video عملیات را متوقف کردم.
اما نکته ای که هست اینه که واقعا ۴ دقیقه تبدیل طول کشیده.

یعنی با این حساب اگر یک Video حدود ۲ ساعت باشه، مدت تبدیل هم ۲ ساعت میشه. ( بیش از ۱۰ بار امتحان کردم، حتی با Video با مدت ۲ دقیقه همین نتیجه بود. )

راهی نیست که سریعتر انجام بشه؟

مبدل دیگه ای نیست؟
کلّاُ عمل رمزگذاری ویدیو عملیه که زمان و منابع زیادی می‌بره. گلوگاه این عمل هم ویدیوییه که داره ساخته می‌شه. یعنی اگه خروجی رو در اندازهٔ کوچک‌تری بخوای، سریع‌تر انجام می‌شه. برای مثال برای گرفتن خروجی ۴۲۰ پیکسلی می‌شه این‌جوری استفاده کرد:
$ ffmpeg -i FILE -vf scale=420:-1 -c:a libvorbis -c:v libx265 output.mp4

۳− تازه بعد از رفع مشکلات بالا، چطوری می تونم از دستور ffmpeg طوری استفاده کنم که به تمام پوشه ها سر بزنه و هر Video که پیدا کرد تبدیل کنه به MKV H.265 HEVC ؟؟؟
با یه for ساده می‌شه این کار رو کرد:
$ IFS=$'\n'; for video in */*.{avi,mp4,flv,webm,mkv}; do ffmpeg -i $video -vf scale=420:-1 -c:a libvorbis -c:v libx265 $video-x265.mkv; done
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #12 : 26 امرداد 1394، 10:34 ب‌ظ »
هر تبدیلی طبیعتاً از نظر تئوری کیفیت رو یک مقدار پایین می‌آره، ولی نه حدّی که یک انسان معمولی بتونه با چشم غیرمسلّح متوجّه بشه. این دو تا تصویر که گذاشتی به نظر می‌رسه از یک فریم یکسان نیستن اصلاً. اگه می‌خوای کیفیتی دقیقاً یکسان با x264 داشته باشی، باید از همون منبعی که x264 ایجاد شده،‌ مستقیم x265 بگیری. مثلاً بلوری رو این‌بار به‌جای x264 با x265 ریپ کنی.
من چیزی تغییر ندادم و دستوری که استفاده کرده بودم را قرار دادم.

اما یک مقدار که جستجو کردم دیدم که x265 خیلی بهتر از x264 برای همین تصمیم دارم که همه چیز را به x265 تبدیل کنم.

تمام Video هایی که دارم Bluray 720p یا Bluray 1080p هستند ( البته او نوع عای مختلف MKV و MP4 و... ). حتی x264 یا 3D ندارم.
پایین تر یا بالاتر از این کیفیت ها هم ندارم.

فقط Bluray

تصاویری که قرار دادم:
اونی که کیفیتش خوبه از Bluray 720p گرفته شده.
اونی که کیفیتش پایینه از تبدیل Bluray 720p به X265 گرفته شده.

اما همانطور که مشاهده کردید، کیفیت پایین اومده.

باید چکار کنم که کیفیت کم نشه؟

کلّاُ عمل رمزگذاری ویدیو عملیه که زمان و منابع زیادی می‌بره. گلوگاه این عمل هم ویدیوییه که داره ساخته می‌شه. یعنی اگه خروجی رو در اندازهٔ کوچک‌تری بخوای، سریع‌تر انجام می‌شه. برای مثال برای گرفتن خروجی ۴۲۰ پیکسلی می‌شه این‌جوری استفاده کرد:
$ ffmpeg -i FILE -vf scale=420:-1 -c:a libvorbis -c:v libx265 output.mp4
خیلی ممنون از توضیح و مثال خوبتان.

بنظر شما اگر PC قویتری گیر بیارم، میتونه در سرعت تاثیر چشم گیری داشته باشه؟

نکته: به هیچ عنوان نمی خوام کیفیت کاهش پیدا کنه. می خوام دقیقا کیفیت برابر باشه.
فقط تنها نکته اینه که میخوام حجم کمتر بشه.

چون حساب کردم اگر همه Video هایی که دارم را تبدیل کنم به x265 حدود 100GB در فضا صرفه جویی میشه.

با یه for ساده می‌شه این کار رو کرد:
$ IFS=$'\n'; for video in */*.{avi,mp4,flv,webm,mkv}; do ffmpeg -i $video -vf scale=420:-1 -c:a libvorbis -c:v libx265 $video-x265.mkv; done
والا بیشتر دنبال این بودم که یک دستور ساده باشه تا یک Script.

ولی مثل اینکه راه دیگه ای نیست.


فقط یک راه حل بهم بگین که چطوری Bluray ها را بدونه اینکه کیفیتشون کاهش پیدا کنه تبدیل کنم؟ فقط می خوام حجمشون کم بشه و کیفیت تغییری نکنه.

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #13 : 27 امرداد 1394، 07:30 ق‌ظ »
تصاویری که قرار دادم:
اونی که کیفیتش خوبه از Bluray 720p گرفته شده.
اونی که کیفیتش پایینه از تبدیل Bluray 720p به X265 گرفته شده.

اما همانطور که مشاهده کردید، کیفیت پایین اومده.

باید چکار کنم که کیفیت کم نشه؟
من هم‌چنان سخت معتقدم که این‌دوتا تصویر اصلاً فریم‌های همسان نیستن که بخوان با هم مقایسه بشن. در تبدیل از x264 به x265 هم ممکن نیست این‌همه کیفیت پایین بیاد. چیزی که من برداشت می‌کنم اینه که در عکسی که از x265 گذاشته شده دوربین در حال حرکت بوده و طبیعتاًً فریمی که ازش عکس گرفته شده به این شکل در اومده.

بنظر شما اگر PC قویتری گیر بیارم، میتونه در سرعت تاثیر چشم گیری داشته باشه؟
طبیعتاً… چون این عمل cpu boundary است و هرچی توان پرودازنده بالا‌تر باشه، سرعت رمزگذاری هم بالاتر می‌ره. افرادی در ایران هستن که کارشون همینه و در دفاتر سینمایی و تلویزیونی و… کار می‌کنن. این‌ها از سیستم‌های ۲۰ تا ۴۰ پردازنده‌ای برای این کار استفاده می‌کنن.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : چگونه تبدیل چندین نوع Video با یک دستور؟
« پاسخ #14 : 27 امرداد 1394، 10:25 ق‌ظ »
من هم‌چنان سخت معتقدم که این‌دوتا تصویر اصلاً فریم‌های همسان نیستن که بخوان با هم مقایسه بشن. در تبدیل از x264 به x265 هم ممکن نیست این‌همه کیفیت پایین بیاد. چیزی که من برداشت می‌کنم اینه که در عکسی که از x265 گذاشته شده دوربین در حال حرکت بوده و طبیعتاًً فریمی که ازش عکس گرفته شده به این شکل در اومده.
چطوری می تونم از هر دو Video ها به صورت همزمان و در یک Frame تصویر بگیرم؟

طبیعتاً… چون این عمل cpu boundary است و هرچی توان پرودازنده بالا‌تر باشه، سرعت رمزگذاری هم بالاتر می‌ره. افرادی در ایران هستن که کارشون همینه و در دفاتر سینمایی و تلویزیونی و… کار می‌کنن. این‌ها از سیستم‌های ۲۰ تا ۴۰ پردازنده‌ای برای این کار استفاده می‌کنن.
در یک شرکت یک Server قوی که ۱۰ پردازنده داره هست که بهش دسترسی دارم، معمولا برای اینجور کارها از اون استفاده می کنم.  ;D