বিশেষ সফটওয়্যার ছাড়াই শুধু termux দিয়ে ভিডিও কনভার্ট করুন

কখনো কখনও আমাদের ভিডিও কনভার্ট করতে হয় বা ভিডিও থেকে অডিও ফাইল এক্সপোর্ট করতে হয়। এসময় আমরা কি করতে অভ্যস্ত? আমরা কিছু নির্দিষ্ট সফটওয়্যার ব্যবহার করি। কিন্তু, আপনি যদি Termux ব্যবহার করেন, তাহলে আপনার FFmpeg ছাড়া অন্য কোনো অ্যাপ্লিকেশনের প্রয়োজন নেই।

Ffmpeg একটি বিনামূল্যের এবং ওপেন সোর্স CLI সফটওয়্যার। FFmpeg এর সাহায্যে, আপনি ভিডিও কনভার্টার সফ্টওয়্যারে যা করতে পারেন তা প্রায় সবই করতে পারেন। আসলে, বেশিরভাগ ভিডিও কনভার্টার সফ্টওয়্যার FFmpeg দ্বারাই নির্মিত হয়।

এই আর্টিকেলে, আমি আপনাকে কোনো FFmpeg কমান্ড শেখাব না। পরিবর্তে, আমি আপনাকে একটি শেল স্ক্রিপ্ট দেব। সেই স্ক্রিপ্টের সাহায্যে যে কেউ সহজেই একটি ভিডিও কনভকর্ট করতে পারবে। বিভিন্ন কোয়ালিটির সাথে ভিডিও থেকে অডিও কনভার্ট, ভিডিওকে 360p, 480p, 720p, 1080p রেজোলিউশনে কনভার্ট করা। ভিডিও বিটরেট পরিবর্তন করা। ইত্যাদি।

ইনস্টলেশন

কিছু করার আগে, আমাদের Termux সিস্টেম আপডেট এবং আপগ্রেড করতে হবে, তাই এই কমান্ডটি চালান।

apt-get update & apt-get upgrade -y

এখন আপনার Termux এ FFmpeg ইনস্টল করুন

apt install ffmpeg

ইনস্টলেশন নিশ্চিত করতে এখন ভার্সন চেক করুন।

ffmpeg -version

এখন এই কমান্ডটি ব্যবহার করে Termux এর বিন ফোল্ডারে যান

cd ~/../usr/bin/

এই সময়ে, এই কমান্ডটি ব্যবহার করে একটি ফাইল তৈরি করুন। এটি “convert_video.sh” নামে একটি ফাইল তৈরি করবে এবং এডিটর মাধ্যমে খুলবে। দ্রষ্টব্য: আপনি আপনার পছন্দ মতো অন্য কোনো নাম ব্যবহার করতে পারেন।

nano convert_video.sh

 

এখন নিচের কোড টি কপি করুন। কোড টি কপি করা না গেলে এখান থেকে কপি করুন।

 

#!/bin/bash

# Check if ffmpeg is installed
if ! command -v ffmpeg &> /dev/null; then
  echo "ffmpeg is not installed. Please install ffmpeg and try again."
  exit 1
fi

# Function to convert video to audio using the selected audio quality
function convert_to_audio() {
  local input_file=$1

  # Output audio file with the same name but ".mp3" extension
  local output_file="${input_file%.*}.mp3"

  # Check if the output file already exists
  if [ -f "$output_file" ]; then
    echo "Output file already exists: $output_file"
    exit 1
  fi

  # Audio quality options
  local quality_options=("128K" "192K" "256K" "320K")

  # Function to convert video to audio using the selected audio quality
  function convert_audio() {
    local selected_quality=${quality_options[$selected_index]}
    echo "Conversion in progress..."
    ffmpeg -i "$input_file" -b:a "$selected_quality" -vn "$output_file" ## 2> /dev/null
    echo "Conversion complete. The audio file is saved as: $output_file"
    exit 0
  }

  # Main loop for audio conversion
  while true; do
    clear
    echo "Audio Conversion Options:"
    echo "1) Convert to MP3"
    echo "2) Back to Main Menu"
    read -p "Enter your choice: " audio_choice

    case $audio_choice in
      1)
        # Display audio quality options
        clear
        echo "Select Audio Quality:"
        for i in "${!quality_options[@]}"; do
          echo "$(($i+1))) ${quality_options[$i]}"
        done
        read -p "Enter the number for the desired audio quality: " selected_index

        # Check if the selected index is within the valid range
        if [[ "$selected_index" =~ ^[0-9]+$ ]] && ((selected_index >= 1 && selected_index <= ${#quality_options[@]})); then
          selected_index=$((selected_index - 1))
          convert_audio
        else
          echo "Invalid selection. Please try again."
        fi
        ;;
      2)
        exit 0
        ;;
      *)
        echo "Invalid choice. Please try again."
        ;;
    esac
  done
}

# Function to convert video to different video quality options
function convert_to_video() {
  local input_file=$1

  # Output video file with the same name but different quality and extension
  local output_file_base="${input_file%.*}"
  local output_file=""
  local selected_resolution=""
  local bitrate=""

  # Video quality options
  local resolution_options=("1920:1080" "1280:720" "854:480" "640:360")

  # Function to convert video using the selected resolution and bitrate
  function convert_video() {
    echo "Conversion in progress..."

    # Check if bitrate is set
    if [ -n "$bitrate" ]; then
      ffmpeg -i "$input_file" -b:v "$bitrate" -c:v libx264 -preset medium -vf "scale=$selected_resolution" "$output_file" ## 2> /dev/null
    else
      ffmpeg -i "$input_file" -c:v libx264 -preset medium -vf "scale=$selected_resolution" "$output_file" ## 2> /dev/null
    fi

    echo "Conversion complete. The video file is saved as: $output_file"
    exit 0
  }

  # Main loop for video conversion
  while true; do
    clear
    echo "Video Conversion Options:"
    echo "1) Convert to different video resolution"
    echo "2) Back to Main Menu"
    read -p "Enter your choice: " video_choice

    case $video_choice in
      1)
        # Display video resolution options
        clear
        echo "Select Video Resolution:"
        for i in "${!resolution_options[@]}"; do
          echo "$(($i+1))) ${resolution_options[$i]}"
        done
        read -p "Enter the number for the desired video resolution: " selected_index

        # Check if the selected index is within the valid range
        if [[ "$selected_index" =~ ^[0-9]+$ ]] && ((selected_index >= 1 && selected_index <= ${#resolution_options[@]})); then
          selected_index=$((selected_index - 1))
          selected_resolution="${resolution_options[$selected_index]}"

          # Display bitrate options
          clear
          echo "Select Bitrate Option for $selected_resolution:"
          echo "1) Default Bitrate"
          echo "2) Custom Bitrate"
          read -p "Enter your choice: " bitrate_choice

          case $bitrate_choice in
            1)
              bitrate=""
              ;;
            2)
              read -p "Enter the custom bitrate (e.g., 1000k): " bitrate
              ;;
            *)
              echo "Invalid choice. Using default bitrate."
              ;;
          esac

          # Set output file name
          output_file="${output_file_base}_${selected_resolution}.mp4"

          convert_video
        else
          echo "Invalid selection. Please try again."
        fi
        ;;
      2)
        exit 0
        ;;
      *)
        echo "Invalid choice. Please try again."
        ;;
    esac
  done
}

# Main loop for the program
while true; do
  clear
  echo "Main Menu:"
  echo "Script created by:"
  echo "
            (       )     )          
      (     )\ ) ( /(  ( /(      (   
 (    )\   (()/( )\()) )\())(  ( )\  
 )\((((_)(  /(_)|(_)\ ((_)\ )\ )((_) 
((_))\ _ )\(_))   ((_)_ ((_|(_|(_)_  
| __(_)_\(_) __| / _ \ \ / / __| _ ) 
| _| / _ \ \__ \| (_) \ V /| _|| _ \ 
|___/_/ \_\|___/ \___/ |_| |___|___/       
         twitter.com/easoyeb                          
"
  echo "1) Convert Video to Audio"
  echo "2) Convert Video to Different Video Quality"
  echo "3) Exit"
  read -p "Enter your choice: " main_choice

  case $main_choice in
    1)
      if [ $# -eq 0 ]; then
        echo "Please provide a video file as an argument."
        exit 1
      fi
      convert_to_audio "$1"
      ;;
    2)
      if [ $# -eq 0 ]; then
        echo "Please provide a video file as an argument."
        exit 1
      fi
      convert_to_video "$1"
      ;;
    3)
      echo "Exiting the program. Goodbye!"
      exit 0
      ;;
    *)
      echo "Invalid choice. Please try again."
      ;;
  esac
done

এখন ফাইলটি সংরক্ষণ করতে CTRL + S এবং ন্যানো এডিটর থেকে বের হতে CTRL + X ব্যবহার করুন।

আমাদের ফাইলের পারমিশন পরিবর্তন করতে হবে; অন্যথায়, আমরা স্ক্রিপ্ট রান করতে পারবো না। এটি করতে, এই কমান্ডটি চালান।

chmod +x convert_video.sh

হেয়ার উই গো;  আমরা Termux bin ফোল্ডারে একটি ফাইল তৈরি করি। এবং সেই ফাইলটিকে পারমিশন ও প্রদান করি। এর মানে আমরা এখন থেকে Termux-এর যেকোনো জায়গা থেকে convert_video.sh, ফাইল অ্যাক্সেস করতে পারবো।

ব্যবহার

এখন cd কমান্ড ব্যবহার করে একটি ভিডিও ফাইল আছে এমন ফোল্ডারে যান। আপনি যদি আপনার স্টোরেজ অ্যাক্সেস করতে না পারেন, তাহলে এই কমান্ডটি ব্যবহার করুন। এই কমান্ডটি আপনার ইন্টার্নাল স্টোরেজ অ্যাক্সেস দেবে।

termux-setup-storage

আপনার ইন্টার্নাল স্টোরেজ অ্যাক্সেস করতে, এই পাথ storage/shared/-এ যান, অথবা আপনি এই কমান্ডটি ব্যবহার করতে পারেন।

cd ~/storage/shared

এখন আপনি আপনার নির্দিষ্ট ফোল্ডার অ্যাক্সেস করতে পারেন, যার ভিডিও ফাইল আছে যা আপনি কনভার্ট করতে চান।

এখানে, আমি আমার ইন্টার্নাল স্টোরেজের “ভিডিও” ফোল্ডারে অবস্থিত একটি ভিডিও কে অডিও ফাইলে কনভার্ট করতে চাই৷ তাই আমাকে এই “cd ~/storage/shared” কমান্ডটি ব্যবহার করে প্রথমে ইন্টার্নাল ফোল্ডারে প্রথমে যেতে হবে, এবং কাঙ্খিত ফোল্ডারে ঢুকতে হবে যেখানে ভিডিও টি আছে।

এখন আমাদের “convert_video.sh” স্ক্রিপ্ট চালানোর সময়। এবার যে ফাইলটি কনভার্ট করতে চাই সেটিও আমাদের লিখে দিতে হবে।

convert_video.sh myVideo.mp4

এখানে আমরা convert_video.sh স্ক্রিপ্টের পরে একটি ভিডিও ফাইলের নাম লিখি। ধরুন আপনার ভিডিওর নাম হল “NewVideo.mp4” তাহলে একটি উদাহরন হিসাবে convert_video.sh এর পরে NewVideo.mp4 লিখতে হবে।

উপরের কমান্ডটি রান করার পরে, আপনি এরকম কিছু দেখতে পাবেন।

এখানে আমি ভিডিও ফাইলটিকে অডিওতে রূপান্তর করতে চাই, তাই আমি 1 লিখে এন্টার টিপে প্রথম অপশন টি নির্বাচন করি।

এখন আবার, অপশন1 নির্বাচন করি (Convert to Mp3)।

এবং এখন, আপনি কোন কোয়ালিটির সাথে কনভার্ট করতে চান? আমি 128k চাই, তাই আমি 1টি অপশন সিলেক্ট করি।

এখন কনভার্সন শুরু করতে এন্টার টিপুন।

কনভার্ট সম্পন্ন হলে নিচের মতো দেখতে পাবেন। কনভার্ট শেষ নতুন ফাইল টি সেভ হবে একই ফোল্ডারে।

এখানে FFmpeg সম্পর্কে শিখিয়েছি, এবং আমি যে স্ক্রিপ্টটি দিয়েছিলাম তা ব্যবহার করে কীভাবে একটি ভিডিও ফাইলকে অডিওতে রূপান্তর করতে হয় সে সম্পর্কেও আমি শিখিয়েছি। সেই স্ক্রিপ্টের সাহায্যে, আপনি বিভিন্ন রেজুলেশন এর ভিডিও ফাইলও কনভার্ট করতে পারেন, তবে আমি আপনাকে এখানে দেখাব না। আপনি নিজে থেকে এটি ফিগার আউট করুন। আমার এই আর্টিকেলটি আপনাকে সাহায্য করবে আশা করি। যদি কোন সমস্যা হয়, কমেন্ট বক্সএ কমেন্ট করুন, এবং আমি আপনাকে সাহায্য করতে চেষ্টা করবো।

আমাদের একটি প্রশ্ন উত্তর এর সাইট রয়েছে যেটা ভিজিট করার আমত্রন জানিয়ে এখানেই শেষ করছি। আর্টিকেল টি পড়ার জন্য ধন্যবাদ।

The post বিশেষ সফটওয়্যার ছাড়াই শুধু termux দিয়ে ভিডিও কনভার্ট করুন appeared first on Trickbd.com.



from Trickbd.com https://ift.tt/wghQBC1
via IFTTT

শেয়ার করুন
পূর্ববর্তী পোষ্ট
পরবর্তী পোষ্ট