ডেভেলপাররা

আপনি যদি একজন প্রোগ্রামার হন (অথবা প্রোগ্রামার হতে চান), এবং OpenShot-এর জন্য নতুন ফিচার তৈরি, বাগ ঠিক করা, বা ইউজার ইন্টারফেস উন্নত করতে আগ্রহী হন, তাহলে নিম্নলিখিত অংশগুলো আপনাকে শুরু করতে এবং অংশগ্রহণ করতে সাহায্য করবে!

বড় চিত্র

OpenShot Video Editor-এর ৩টি প্রধান উপাদান রয়েছে: একটি Python ও PyQt ইউজার ইন্টারফেস (openshot-qt), একটি C++ অডিও লাইব্রেরি (libopenshot-audio) এবং একটি C++ ভিডিও লাইব্রেরি (libopenshot)। আপনি যদি Python, PyQt, বা C++ সম্পর্কে পরিচিত না হন, তাহলে এই মুহূর্তে এগুলো নিয়ে গবেষণা করে আরও শিখা ভালো হবে।

তবে, অনেক বাগ শুধরানো এবং নতুন ফিচার যোগ করা যায় শুধুমাত্র Python জ্ঞান দিয়ে, কারণ C++ উপাদানগুলো ইউজার ইন্টারফেসে সম্পৃক্ত নয়। Python একটি অসাধারণ ভাষা, শেখার জন্য খুব মজার, এবং OpenShot ডেভেলপার হতে একমাত্র প্রয়োজনীয় দক্ষতা!

সতর্কতা

নিম্নলিখিত নির্দেশনাগুলো Ubuntu Linux-এর জন্য, যা OpenShot ডেভেলপমেন্টের জন্য সবচেয়ে সহজ পরিবেশ। আপনি যদি অন্য কোনো OS ব্যবহার করেন, তাহলে আমি পরামর্শ দিবো Ubuntu LTS সহ একটি ভার্চুয়াল মেশিন চালিয়ে তারপর এগিয়ে যাওয়ার।

যদি ডেভেলপমেন্টের জন্য Windows বা Mac সিস্টেম ব্যবহার করতে হয়, তাহলে শুরু করুন libopenshot উইকির বিল্ড নোট থেকে। সমস্ত ডিপেন্ডেন্সিসহ লাইব্রেরি তৈরি করাই প্রক্রিয়ার সবচেয়ে চ্যালেঞ্জিং অংশ।

সর্বশেষ সোর্স কোড সংগ্রহ

কোনো বাগ ঠিক করার বা নতুন ফিচার যোগ করার আগে, আমাদের সোর্স কোড আপনার কম্পিউটারে আনতে হবে।

আমাদের ৩টি রিপোজিটরি ক্লোন করতে git ব্যবহার করুন:

git clone https://github.com/OpenShot/libopenshot-audio.git
git clone https://github.com/OpenShot/libopenshot.git
git clone https://github.com/OpenShot/openshot-qt.git

আপনার ডেভেলপমেন্ট পরিবেশ কনফিগার করা

OpenShot কম্পাইল বা চালানোর জন্য আপনার সিস্টেমে কিছু ডিপেন্ডেন্সি ইনস্টল করতে হবে। এটি করার সবচেয়ে সহজ উপায় হলো আমাদের Daily PPA ব্যবহার করা। PPA হলো একটি আনঅফিশিয়াল Ubuntu রিপোজিটরি, যেখানে আমাদের সফটওয়্যার প্যাকেজগুলো ডাউনলোড ও ইনস্টল করার জন্য উপলব্ধ।

sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
sudo apt-get update
sudo apt-get install openshot-qt \
                     cmake \
                     libx11-dev \
                     libasound2-dev \
                     libavcodec-dev \
                     libavdevice-dev \
                     libavfilter-dev \
                     libavformat-dev \
                     libavresample-dev \
                     libavutil-dev \
                     libfdk-aac-dev \
                     libfreetype6-dev \
                     libjsoncpp-dev \
                     libmagick++-dev \
                     libopenshot-audio-dev \
                     libprotobuf-dev \
                     libqt5svg5-dev \
                     libswscale-dev \
                     libunittest++-dev \
                     libxcursor-dev \
                     libxinerama-dev \
                     libxrandr-dev \
                     libzmq3-dev \
                     pkg-config \
                     python3-dev \
                     protobuf-compiler \
                     qtbase5-dev \
                     libqt5svg5-dev \
                     libxcb-xfixes0-dev \
                     qtmultimedia5-dev \
                     swig

এই পর্যায়ে, আপনার কাছে OpenShot-এর ৩টি উপাদানের সোর্স কোড লোকাল ফোল্ডারে ক্লোন করা, OpenShot ডেইলি PPA ইনস্টল করা, এবং সব প্রয়োজনীয় ডেভেলপমেন্ট ও রানটাইম ডিপেন্ডেন্সি ইনস্টল করা থাকা উচিত। এটি একটি চমৎকার শুরু, এবং এখন আমরা কোড কম্পাইল করা শুরু করতে প্রস্তুত!

libopenshot-audio (বিল্ড নির্দেশনা)

এই লাইব্রেরি অডিও প্লেব্যাক এবং অডিও ইফেক্টের জন্য প্রয়োজন। এটি JUCE অডিও ফ্রেমওয়ার্কের উপর ভিত্তি করে। এটি বিল্ড করার জন্য কমান্ডগুলো নিচে দেওয়া হলো:

cd libopenshot-audio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=dist ..
make
make install

মূলত, আমরা libopenshot-audio/build ফোল্ডারে যাচ্ছি, তারপর প্যারেন্ট ফোল্ডারে cmake .. চালাচ্ছি। এটি ডিপেন্ডেন্সি খুঁজে বের করে এবং এই লাইব্রেরি কম্পাইল করার জন্য প্রয়োজনীয় সব Makefile তৈরি করে। এরপর make সেই Makefile ব্যবহার করে লাইব্রেরি কম্পাইল করে, এবং make install নির্দিষ্ট স্থানে ইনস্টল করে। যদি CMAKE_INSTALL_PREFIX সেট না থাকে, তাহলে ফাইলগুলো ডিফল্টভাবে /usr/local/-এ ইনস্টল হবে এবং make install চালাতে প্রশাসনিক অনুমতি লাগবে।

libopenshot (বিল্ড নির্দেশনা)

এই লাইব্রেরি ভিডিও ডিকোডিং, এনকোডিং, অ্যানিমেশন এবং প্রায় সবকিছুতেই প্রয়োজন। এটি ভিডিও এডিটিং এবং ভিডিও প্লেব্যাকের সব ভারী কাজ করে। এটি বিল্ড করার জন্য কমান্ডগুলো নিচে দেওয়া হলো:

cd libopenshot
mkdir build
cd build
cmake -DLIBOPENSHOT_AUDIO_DIR=../../libopenshot-audio/build/dist ..
make

মূলত, আমরা libopenshot/build ফোল্ডারে যাচ্ছি, তারপর প্যারেন্ট ফোল্ডারে cmake .. চালাচ্ছি। এটি ডিপেন্ডেন্সি খুঁজে বের করে এবং এই লাইব্রেরি কম্পাইল করার জন্য প্রয়োজনীয় সব Makefile তৈরি করে। এরপর make সেই Makefile ব্যবহার করে লাইব্রেরি কম্পাইল করে। যেহেতু আমরা আমাদের কম্পাইল করা libopenshot-audio ইনস্টলেশনের অবস্থান দিয়েছি, তাই সিস্টেম ভার্সনের পরিবর্তে সেই ভার্সন ব্যবহার হবে (যদি থাকে)।

আমরা বিল্ড করার পর আমাদের libopenshot ইনস্টল করি না, কারণ প্রয়োজন নেই। টেস্টিংয়ের জন্য, আমরা OpenShot-কে বলতে পারি যে এটি সরাসরি আমাদের build ডিরেক্টরি থেকে libopenshot ব্যবহার করুক।

ভাষা বাইন্ডিংস

libopenshot API SWIG বাইন্ডিংসের মাধ্যমে বিভিন্ন ভাষায় উপলব্ধ। OpenShot ইউজার ইন্টারফেসে Python ব্যবহৃত হয়, এবং আমরা Ruby ও Java বাইন্ডিংসও প্রদান করি। Godot 4.4 এর জন্য পরীক্ষামূলক সমর্থন অন্তর্ভুক্ত আছে, যারা Godot গেম ইঞ্জিনে ভিডিও এডিটিং ফিচার ইন্টিগ্রেট করতে চান তাদের জন্য। এই সব বাইন্ডিংস একই C++ কোডবেসের সাথে যুক্ত, তাই আপনি আপনার পছন্দের পরিবেশ থেকে ভিডিও এডিট করতে পারবেন।

openshot-qt (লঞ্চ নির্দেশনা)

এটি আমাদের প্রধান PyQt Python অ্যাপ্লিকেশন। যেহেতু এটি Python-এ লেখা, তাই চালানোর জন্য কোনো কম্পাইলেশন প্রয়োজন হয় না। সোর্স কোড থেকে OpenShot চালাতে আমাদের নতুন কম্পাইল করা libopenshot-audio এবং libopenshot লাইব্রেরি ব্যবহার করে নিচের কমান্ডগুলো ব্যবহার করুন:

cd openshot-qt
PYTHONPATH=../libopenshot/build/src/bindings/python
python3 src/launch.py

এটি OpenShot ব্যবহারকারী ইন্টারফেস চালু করবে। আপনি যে কোনও পরিবর্তন সোর্স কোড ফাইলগুলিতে (*.py পাইথন ফাইল, *.ui PyQt UI ফাইল ইত্যাদি) করেছেন তা অন্তর্ভুক্ত থাকবে। এর জন্য libopenshot-audio এবং libopenshot লাইব্রেরিগুলি প্রয়োজন, এবং উপরের ধাপগুলিতে কিছু ভুল হলে, OpenShot সম্ভবত চালু হবে না।

যদি এই মুহূর্তে OpenShot চালু হয়, অভিনন্দন! আপনার কাছে এখন একটি কার্যকরী লোকাল OpenShot সংস্করণ রয়েছে, যা আপনার লোকাল সোর্স কোড থেকে চলছে। সোর্স কোডে কিছু পরিবর্তন করে OpenShot পুনরায় চালু করার চেষ্টা করুন... এখন আপনি আপনার পরিবর্তনগুলি দেখতে পাবেন!

GitHub সমস্যা

এখন যেহেতু আপনি সফলভাবে সোর্স কোড থেকে OpenShot ভিডিও এডিটর কম্পাইল এবং চালু করেছেন, GitHub-এ আমাদের বাগ রিপোর্টের তালিকা দেখুন: OpenShot Issues। এছাড়াও, আমাদের দ্রুত contributor form পূরণ করে নিজেকে পরিচয় করানোর জন্য উৎসাহিত করা হচ্ছে!

আপনার পরিবর্তনগুলি শেয়ার করুন

যখন আপনি একটি বাগ ঠিক করেছেন বা একটি চমৎকার নতুন ফিচার যোগ করেছেন, তখন অবশ্যই এটি OpenShot টিমের সাথে শেয়ার করুন। আদর্শভাবে, আমরা এটি আমাদের প্রধান সোর্স কোড শাখায় মার্জ করতে পারি। আপনার পরিবর্তনগুলি শেয়ার করার সবচেয়ে সহজ উপায় হল আমাদের রিপোর একটি ফর্ক তৈরি করা, আপনার পরিবর্তনগুলি GitHub-এ পুশ করা, এবং একটি Pull Request তৈরি করা। একটি Pull Request OpenShot টিমকে জানায় যে আপনার পরিবর্তনগুলি মার্জ করার জন্য প্রস্তুত। তারপর আমরা বিষয়গুলি পর্যালোচনা করতে পারি, প্রতিক্রিয়া দিতে পারি, এবং আশা করি আপনার পরিবর্তনগুলি প্রধান শাখায় মার্জ করতে পারব।