শেলটি ব্যবহার করে আমার দৈর্ঘ্য> 4 মিনিটের মধ্যে সমস্ত এমপি 4 ফাইল আপলোড করতে হবে। কোনও ভিডিও কত দিন তা যাচাই করার জন্য আমি কোনও স্ক্রিপ্ট পাচ্ছি না। এটি করার জন্য কারও কি ধারণা আছে?
আপনাকে অনেক ধন্যবাদ!
শেলটি ব্যবহার করে আমার দৈর্ঘ্য> 4 মিনিটের মধ্যে সমস্ত এমপি 4 ফাইল আপলোড করতে হবে। কোনও ভিডিও কত দিন তা যাচাই করার জন্য আমি কোনও স্ক্রিপ্ট পাচ্ছি না। এটি করার জন্য কারও কি ধারণা আছে?
আপনাকে অনেক ধন্যবাদ!
উত্তর:
এটি আপনাকে একটি ভিডিওর দৈর্ঘ্য দেবে।
ffmpeg -i myvideo 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//
মেডিইনফো এই উদ্দেশ্যে একটি দ্রুত সরঞ্জাম:
$ mediainfo --Inform="Video;%Duration%" [inputfile]
আপনি আরও পুঙ্খানুপুঙ্খ উত্তরে আরও বিকল্পগুলি পেতে পারেন ।
আমার পরীক্ষাগুলিতে, ffprobe
0.3 সেকেন্ড mediainfo
সময় নেয় এবং 0.09 সেকেন্ড সময় নেয়।
mediainfo --Inform="Video;%Duration/String%" [inputfile]
... যা আপনাকে 43 মিনিট 50 এর
আপনি avconv কমান্ড ব্যবহার করার চেষ্টা করতে পারেন ..
প্রথমে আপনার ইনস্টল করা উচিত:
আপনি যদি পতাকাটি -i দিয়ে কমান্ডটি টাইপ করেন তবে আপনি ভিডিও সম্পর্কে তথ্য পাবেন:
avconv -i test.mp4
আউটপুটে একটি ক্ষেত্র রয়েছে যা ডিউরেশন বলে
avconv version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Nov 6 2012 16:51:33 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Duration: 00:58:28.05, start: 0.000000, bitrate: 888 kb/s
Stream #0.0(eng): Video: h264 (High), yuv420p, 720x404, 748 kb/s, 25 fps, 25 tbr, 20k tbn, 50 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
এখন আপনি কেবলমাত্র ক্ষেত্রের সময়কালের মান পেতে কমান্ডটি ব্যবহার করতে পারেন
টাইপ করুন:
avconv -i file.mp4 2>&1 | grep 'Duration' | awk '{print $2}' | sed s/,//
আমার ক্ষেত্রে ফলাফল:
00:58:28.05
58 মিনিট এবং 28.05 সেকেন্ড।
আশা করি এটি সহায়ক হবে!
avprobe
- এর প্রয়োজন নেই -i
তবে এটি অন্যথায় ঠিক একইভাবে কাজ করে। অথবা ffprobe
@ প্রতি উত্তরের জন্য।
exiftool
(মূলত ইমেজ ফাইলগুলি থেকে ক্যামেরা মেটাডেটা পড়ার উদ্দেশ্যে, তবে পরে প্রায় কোনও ধরণের মিডিয়া ফাইল থেকে মেটাডেটা পড়তে এবং লিখতে প্রসারিত ) এর জন্য এটি ব্যবহার করা খুব সুবিধাজনক। এটি দিয়ে চালান:
exiftool FILE.mp4 | grep Duration
আপনাকে সম্ভবত exiftool
প্রথমে ইনস্টল করতে হবে , তবে এটি সহজেই নিম্নলিখিত কমান্ডের সাহায্যে (ডেবিয়ান এবং ডাবেরভেটিভ যেমন উবুন্টু ইত্যাদিতে) সম্পন্ন হয়েছে:
apt install libimage-exiftool-perl
অবশ্যই, এই উত্তরটি অন্য একটি বিকল্প। অন্যান্য উত্তর অনেক ভাল হয়। :)
এমনকি সহজ:
avprobe file.mp4 -show_format_entry duration
যোগ করা হচ্ছে pers সমাধান , এই একটি সম্পূর্ণ ডিরেক্টরি ব্যবহার করা যেতে পারে:
for f in *; do ffmpeg -i "$f" 2>&1 | grep Duration | cut -d " " -f 4 | sed s/,// | tr -d "\n" && echo " $f"; done
এমনকি | sort
দৈর্ঘ্য অনুসারে ফাইলগুলি বাছাই করে এটি বাড়ানো যেতে পারে ।
আপনি এটিতে যুক্ত করতে পারেন .bashrc
বা কোনও ডিরেক্টরিতে .bash_aliases
সক্ষম হতে পারেন lsvlength | sort
alias lsvlength='for f in *; do ffmpeg -i "$f" 2>&1 | grep Duration | cut -d " " -f 4 | sed s/,// | tr -d "\n" && echo " $f"; done'
ffprobe
ffmpeg
আউটপুট পাথটি দেওয়া না হলে এটির থেকে আরও দুর্দান্ত সমাধান যা ত্রুটি ছুঁড়ে।
ffprobe video.mp4 2>&1 | grep -E '^ +Duration' | cut -d':' -f2- | cut -d, -f1
আপনি যদি কোনও ডিরেক্টরিতে কিছু ভিডিওর সময়কাল দেখতে চান তবে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন
exiftool * | গ্রেপ ^ সময়কাল | কাট-ডি '' -ফ 26
grep
এবং এই জাতীয়। সহজভাবে exiftool -T -Duration *.mkv
(বা যে কোনও ফাইলের প্যাটার্ন)
আপনি দেখতে পাচ্ছেন এটি সম্পন্ন করার জন্য অনেকগুলি উপায় রয়েছে।
ffprobe mediafile -show_entries format=format=duration 2>&1 | grep DURATION
যেখানে মিডিয়াফাইল ফাইলটির নাম, নীচের মতো আউটপুট সরবরাহ করবে। প্রথমটি প্রথম প্রবাহের সময়কাল (সাধারণত ভিডিও) এবং দ্বিতীয়টি দ্বিতীয় প্রবাহের সময়কাল সরবরাহ করে (সাধারণত অডিও)
DURATION : 00:21:40.132000000
DURATION : 00:21:40.062000000