محاسبه مجموع مدت زمان چندین فایل ویدئویی در لینوکس

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

امروز میخواستم یه دوره رو ببینم بعد گفتم اگه خیلی طولانیه و بالا بیست ساعته بیخیالش شم. خب در ادامه قراره به چار روش سامورایی(که حذفشون کردیم)‌ برسی کنیم ببینیم چه شکلی میشه این کار رو انجام داد.


راه اول

یه راه اینه که مثه چیزا بشینیم ببینیم هر کدوم چند دقیقه‌ان و جمعشون کنیم!!!


راه دوم

یه راه دیگه اینه که مثه یه ویندوزی قهرمان ببریمشون توی ویندوز و همه رو سلکت کنیم و اون تب details اگه اشتباه نکنم یه چیزی داره length اونجا ببنیم سر جمع چه قدر طول میکشن.

راه سوم

خب از این راه میریم سرغ لینوکسمون. راه بعدی اینه که VLCمون رو نصب کنیم؛ یا این که از قبل همکارامون واسمون نصب کردن و همه فایلهای ویدیوییمون رو سلکت کنیم و درگ کنیم و بکشیم بندازیم تو VLC تا VLC برامون اون سمت چپ بالا مجموعشونو نشون بده.

راه چهارم

و اما یه راه چهارمم و آخرم هست که همیشه هست دوستای خوب من راه کامند لاینه...

بیایم با کمک exiftool متادیتاهای ویدیوهارو بخونیم و تگ Duration رو بگیریم واسه هر فایل و با یه متغیر sum هر سری جمعش کنیم. منظورم یه چنین چیزیه:

exiftool -n -q -p '${Duration;our $sum;$_=ConvertDuration($sum+=$_)}' ./*.mp4 | tail -n1

فرمت ویدیوتونم میتونید با regex تعیین کنید که اینجا مثلا گفتیم .mp4 باشه و اون آخرم پایپش کنیم به tial که فقط اون sum آخریو برامون نشون بده تا مرتب ببینمش.

و معلومه که اسکریپ چون با پرله باید یه چیزایی رو از قبل نصب کرده باشین یا از طریق دستور زیر برای دبیان بیسا نصب کنید:

sudo apt install libimage-exiftool-perl




خب دیدید که همین چیز خییلی کوچولو و فانی چه چیزایی باحالی توش داشت:)