yt-dlp ব্যবহার করে শুধুমাত্র অডিও ফাইলগুলিকে ffmpeg-এর ffprobe দিয়ে সনাক্ত করে একটি আলাদা ডিরেক্টরিতে সরানোর জন্য একটি শেল স্ক্রিপ্ট

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

ffprobe.png

নমস্কার, আমি অযোগ্য।

আমি yt-dlp ব্যবহার করে আমার পছন্দের ইউটিউব ভিডিওগুলিকে সম্পূর্ণরূপে স্ব-ব্যবস্থাপনা করেছি।

তবে, সংরক্ষণের সময় আমি music.youtube.com-এর জন্য কোনো চেক রাখিনি, তাই সবকিছু একই ডিরেক্টরিতে রয়েছে।
এর ফলে গান এবং অন্যান্য জিনিস মিশে যাওয়ায় দেখতে খুব অসুবিধা হয়, তাই আমি ফোল্ডারগুলিকে আলাদা করার একটি উপায় বের করেছি।


সুতরাং, একটি সাধারণ ভিডিও ফাইল নাকি একটি অডিও ফাইল, তা একই এক্সটেনশন .mp4 হলে আলাদা করা যায় না।
ফাইলের আকার বা দৈর্ঘ্য ইত্যাদি দিয়ে বিচার করলেও, নির্ভুলতা খুব কম।

তখন, আমি বুঝতে পারলাম যে অনুপাত (aspect ratio) দিয়ে বিচার করা ভালো হবে।
আশ্চর্যজনকভাবে, ffmpeg অনুপাত নির্ধারণ করতে পারে, তাই আমি নিম্নলিখিত কমান্ড দিয়ে এটি পরীক্ষা করব।

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 “音楽ファイル.mp4”

> 1080x1080

সুতরাং, এটি 1080-এর একটি বর্গাকার বলে মনে হচ্ছে।

অর্থাৎ, এই মানটি পাওয়া ফাইলগুলিকে একটি আলাদা ডিরেক্টরিতে সরিয়ে দিলেই হবে।
বাহ, ffmpeg সত্যিই অসাধারণ! এমন একটি বৈশিষ্ট্যও আছে... অবিশ্বাস্য।

তাহলে, আমি শেল স্ক্রিপ্টটি নিম্নরূপ লিখেছি।

vi mvfile.sh

#!/bin/bash

# ডিরেক্টরির পথ সেট করুন
input_dir="/media/aaa"
output_dir="/media/bbb"

# আউটপুট ডিরেক্টরি না থাকলে তৈরি করুন
mkdir -p "$output_dir"

# প্রতিটি ফাইলের জন্য প্রক্রিয়া করুন
for file in "$input_dir"/*.mp4; do
# ffprobe ব্যবহার করে ভিডিওর অনুপাত (aspect ratio) পান
    ratio=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "$file")

    # যদি অনুপাত 1080x1080 হয়, তাহলে ফাইলটি আউটপুট ডিরেক্টরিতে সরান
    if [ "$ratio" == "1080x1080" ]; then
        mv "$file" "$output_dir"
        echo "Moved $file to $output_dir"
    fi
done

তারপর, আমি এক্সিকিউশন পারমিশন দেব।

chmod +x mvfile.sh

এবং, এক্সিকিউট করুন

./mvfile.sh

এর মাধ্যমে, যদি স্থানান্তরিত হওয়ার আউটপুট দেখা যায়, তাহলে এটি সফল।
বিশেষ করে, ভিডিও ফাইল সংরক্ষণের জন্য ব্যবহৃত ডিরেক্টরিতে উপরের স্ক্রিপ্টটিকে একটি ক্রন জব হিসাবে সেট করা ভালো হতে পারে।

তাহলে।

আবার দেখা হবে।

※ মনে হচ্ছে, অনেক থাম্বনেইল কিছুটা ভুল আছে, তাই আমি থাম্বনেইল সনাক্তকরণটি নিম্নরূপ পরিবর্তন করেছি।

if [[ "$ratio" == @(10[78][0-9]x10[78][0-9]|7[12][0-9]x7[12][0-9]) ]]; then

Related Posts