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 সম্পর্কে শিখিয়েছি, এবং আমি যে স্ক্রিপ্টটি দিয়েছিলাম তা ব্যবহার করে কীভাবে একটি ভিডিও ফাইলকে অডিওতে রূপান্তর করতে হয় সে সম্পর্কেও আমি শিখিয়েছি। সেই স্ক্রিপ্টের সাহায্যে, আপনি বিভিন্ন রেজুলেশন এর ভিডিও ফাইলও কনভার্ট করতে পারেন, তবে আমি আপনাকে এখানে দেখাব না। আপনি নিজে থেকে এটি ফিগার আউট করুন। আমার এই আর্টিকেলটি আপনাকে সাহায্য করবে আশা করি। যদি কোন সমস্যা হয়, কমেন্ট বক্সএ কমেন্ট করুন, এবং আমি আপনাকে সাহায্য করতে চেষ্টা করবো।
আমাদের একটি প্রশ্ন উত্তর এর সাইট রয়েছে যেটা ভিজিট করার আমত্রন জানিয়ে এখানেই শেষ করছি। আর্টিকেল টি পড়ার জন্য ধন্যবাদ।
3 thoughts on "বিশেষ সফটওয়্যার ছাড়াই শুধু termux দিয়ে ভিডিও কনভার্ট করুন"