1. MoviePy nədir və niyə hamıdan yaxşıdır?
Salam, əziz tələbələr! Bu gün MoviePy ilə video işləmənin maraqlı dünyasına qərq olacağıq — bu alət sizə adi videokliplərdən video sehrini yaratmağa imkan verəcək. Əgər heç vaxt düşünmüsünüzsə ki, video montaj yalnız bahalı alətlərlə peşəkarların işidir, bu gün sizə bunun belə olmadığını sübut edəcəm. Gəlin başlayaq!
MoviePy — Python üçün video işləmə kitabxanasıdır. O sizə video faylları oxumağa, yazmağa, dəyişməyə və hətta audio ilə işləməyə imkan verir! Və bütün bunlar video montaj kurslarına qatılmağa ehtiyac olmadan. Bir az sehr və sizin Python diliniz istənilən dildə video pıçıldamağa başlayır.
Niyə məhz MoviePy?
- Sadəlik: MoviePy intuitiv interfeysi ilə fərqlənir, hansı ki, sizə kodlarla itirilmədən videolarla işləmək imkanı verir.
- Çoxfunksiyalılıq: Videoları kəsməkdən mətnlər və effektlər əlavə etməyə qədər — MoviePy əksər tapşırıqlarda sizə kömək edəcək.
- Uyğunluq: Müxtəlif platformalarda işləyir və NumPy və PIL (Pillow) kimi digər kitabxanalarla birlikdə istifadə edilə bilər.
2. MoviePy quraşdırılması
Gəlin MoviePy quraşdıraq! Bunun üçün sizə Python və internetdən paketlər yükləyə bilmək lazımdır. Wi-Fi-a qoşulun (ya da GitHub-u pulsuz Wi-Fi kimi istifadə edin — deyirlər, peşəkarlar belə edir), terminalı açın və yazın:
pip install moviepy
Əgər nəsə düzgün getməsə, narahat olmayın! Biz proqramlaşdırma dünyasındayıq, burada "hər şey düzgün getmədi" — bu hətta bug yox, bir az inkişaf etdirilmiş xüsusiyyətdir.
Quraşdırma ilə bağlı problemləri həll edirik
Əgər quraşdırma zamanı səhvlərlə qarşılaşsanız, kompüterinizi tullamayın. Aşağıdakı addımları yoxlayın:
- Python versiyasını yoxlayın: MoviePy üçün 3.5 və ya daha yuxarı versiya olan Python tələb olunur.
- Bütün zəruri asılılıqların quraşdırıldığına əmin olun: MoviePy-nin bəzi funksiyaları üçün FFMPEG tələb oluna bilər. Rəsmi FFMPEG səhifəsindəki təlimatlara əsasən, onu quraşdırın.
- Virtual mühitdən istifadə etməyə çalışın: Bəzi hallarda, asılılıq problemləri yeni virtual mühit yaradaraq həll edilir.
python -m venv myenv
yazaraq yoxlayın.
3. Videonu açmaq və oxumaq
İndi ki, bizdə MoviePy quraşdırılıb, işə başlaya bilərik. Təsəvvür elə ki, köhnə yaxşı kino proyektorunu götürüb, lentləri zarafatlara və elementlərə bölməyə başlayırsan ki, yeni bir şedevr yaradasan. Gəlin bunu kodda necə işlədiyini görək.
MoviePy-də video ilə işləmək üçün VideoFileClip
sinifindən istifadə olunur ki, o, video faylları yükləməyə və emal etməyə imkan verir. Video faylının açılması — onun xassələrinə və redaktə imkanlarına çıxışı təmin edən ilk addımdır.
Video faylını açmaq
from moviepy.editor import VideoFileClip
# Video faylını açmaq
video = VideoFileClip("sample_video.mp4")
# Video haqqında əsas məlumatı əldə etmək
print("Müddət:", video.duration, "saniyə")
print("Həll:", video.size)
print("Kadr tezliyi:", video.fps, "kadr/saniyə")
Kodun izahı
VideoFileClip("sample_video.mp4")
:sample_video.mp4
video faylını yükləyir və onunla işləmək üçünvideo
obyektini yaradır.video.duration
: Videonun müddətini saniyələrlə göstərir.video.size
: Videonun ölçülərini (eni və hündürlüyü) qaytarır.video.fps
: Videonun kadr tezliyini (frames per second) qaytarır.
4. Videonun ölçülərinin dəyişdirilməsi
Bəzən dərc üçün və ya optimizasiya üçün videonun ölçülərini dəyişmək lazım olur. MoviePy-də bunu resize()
metodu ilə etmək olar, bu metod videonu lazım olan ölçüyə və ya orijinaldan müəyyən faizlə miqyaslandıra bilər.
Nümunə
# Videonun ölçüsünü orijinaldan 50% qədər kiçiltmək
video_resized = video.resize(0.5)
video_resized.write_videofile("resized_video.mp4")
Kodun izahı
video.resize(0.5)
: Videonun ölçülərini orijinal ölçülərdən 50%-ə qədər azaldır.write_videofile()
: Nəticəniresized_video.mp4
adlı yeni video faylı olaraq saxlayır.
Faizlə miqyaslamadan başqa, konkret ölçü təyin etmək olar, məsələn, videonun enini 640 pikselə dəyişdirmək:
# Videonun enini 640 piksel etmək
video_resized = video.resize(width=640)
video_resized.write_videofile("resized_video_640.mp4")
Əgər yalnız bir tərəfi (məsələn, width=640
) göstərsəniz, ikinci tərəf avtomatik şəkildə proporsiyanı qorumaq üçün hesablanacaq.
5. Videonun kəsilməsi (crop)
Kəsmə (crop) — əgər videonun lazımsız hissələrini çıxarıb yalnız lazım olan sahəni saxlamaq istəyirsinizsə, bu faydalı bir əməliyyatdır. crop()
metodu kəsmə üçün koordinatları təyin etməyə imkan verir: yuxarı və aşağı sərhədləri, həmçinin sol və sağ tərəfləri.
Nümunə
# Videonun kəsilməsi: kənar sahələrin çıxarılması
video_cropped = video.crop(x1=50, y1=50, x2=500, y2=400)
video_cropped.write_videofile("cropped_video.mp4")
Kodun izahı
video.crop(x1=50, y1=50, x2=500, y2=400)
: Videonu kəsir və koordinatdan(50, 50)
koordinatına(500, 400)
qədər olan sahəni saxlayır.write_videofile()
: Kəsilmiş videonucropped_video.mp4
kimi saxlayır.
6. Videonun döndürülməsi
MoviePy həmçinin videonun 90, 180 və ya 270 dərəcə döndürülməsini dəstəkləyir ki, bu da müxtəlif istiqamətlərdə çəkilmiş videolarla işləyərkən faydalı ola bilər.
Videonun 90 dərəcə döndürülməsi
# Videonun 90 dərəcə döndürülməsi
video_rotated = video.rotate(90)
video_rotated.write_videofile("rotated_video.mp4")
Kodun izahı
video.rotate(90)
: Videonu saat əqrəbi istiqamətində 90 dərəcə döndərir.write_videofile()
: Döndərilmiş videonurotated_video.mp4
kimi saxlayır.
7. Oynatma sürətinin dəyişdirilməsi
Bəzi hallarda videonu sürətləndirmək və ya yavaşlatmaq faydalı olur. MoviePy-də bunu oynatma sürətini dəyişdirməyə imkan verən fx
metodu vasitəsilə etmək olar.
Videonu 2 dəfə sürətləndirmək
from moviepy.video.fx.all import speedx
# Videonu 2 dəfə sürətləndirmək
video_fast = video.fx(speedx, 2)
video_fast.write_videofile("fast_video.mp4")
Kodun izahı
video.fx(speedx, 2)
: Videonu 2 dəfə sürətləndirir. Əgər videonu yavaşlatmaq istəsəydiniz, 1-dən kiçik bir qiymət istifadə edə bilərsiniz (məsələn,0.5
).write_videofile()
: Sürətləndirilmiş videonufast_video.mp4
kimi yadda saxlayır.
8. Vaxt üzrə kəsmə (videonun doğranması)
MoviePy həmçinin videonu vaxt üzrə kəsməyə imkan verir, bu isə müəyyən bir hissəni videodan ayırmaq lazım olduqda faydalıdır.
Nümunə: Videonun 10-cu saniyədən 30-cu saniyəyə qədər kəsilməsi
# Videonu vaxt aralığında 10-cu saniyədən 30-cu saniyəyə qədər kəsmək
video_subclip = video.subclip(10, 30)
video_subclip.write_videofile("subclip_video.mp4")
Kodun izahı
video.subclip(10, 30)
: 10-cu saniyədən başlayıb 30-cu saniyədə bitən yeni bir videoklip yaradır.write_videofile()
: Kəsilmiş parçanısubclip_video.mp4
olaraq yadda saxlayır.
9. Dəyişikliklərin saxlanması və videonun eksportu
Videonu emal etdikdən sonra dəyişiklikləri saxlamaq vacibdir. MoviePy videonu müxtəlif formatlarda eksport etmək üçün write_videofile()
metodundan istifadə edir.
Nümunə: Parametrlərin tənzimlənməsi ilə eksport
# Parametrləri tənzimləyərək videonun saxlanması
video_resized.write_videofile(
"output_video.mp4",
codec="libx264", # video üçün codec (məsələn, MP4 üçün libx264)
audio_codec="aac", # audio üçün codec (məsələn, aac)
bitrate="5000k" # keyfiyyəti tənzimləmək üçün bitrate
)
Kodun izahı
codec
: Videonun sıxılması üçün codec təyin edir. Məsələn, MP4 formatı üçünlibx264
.audio_codec
: Audio treki üçün codec təyin edir (məsələn,aac
).bitrate
: Videonun keyfiyyət və ölçüsünü tənzimləyir (yüksək keyfiyyət üçün 5000 kbps).
Tam işlək kod nümunəsi
Baxılan metodları birləşdirərək videonu açan, ölçüsünü dəyişən, döndərən, kəsən və nəticəni saxlayan bir nümunə yaradaq.
from moviepy.editor import VideoFileClip
from moviepy.video.fx.all import speedx
# Video faylın açılması
video = VideoFileClip("sample_video.mp4")
# Orijinalın 50%-ə qədər ölçüsünün azaldılması
video_resized = video.resize(0.5)
# 90 dərəcə döndərilməsi
video_rotated = video_resized.rotate(90)
# Videonun 1.5 dəfə sürətləndirilməsi
video_fast = video_rotated.fx(speedx, 1.5)
# 5-dən 20-ci saniyəyə qədər olan hissənin kəsilməsi
video_subclip = video_fast.subclip(5, 20)
# Emal edilmiş videonun saxlanması
video_subclip.write_videofile("final_output.mp4", codec="libx264", audio_codec="aac", bitrate="3000k")
10. Tipik səhvlər
Əgər MoviePy istifadə edərkən hər hansı problemlərlə qarşılaşsanız, tələsməyin saçınızı yolmağa. Budur bir neçə yayılmış problem və onların həll üsulları:
- Codec problemləri: Əgər faylınız yaddaşa verilə bilmirsə, problem codec-lərdə ola bilər.
write_videofile
metodunacodec="libx264"
əlavə edin. - FFMPEG xətası: Əmin olun ki, FFMPEG quraşdırılıb və sisteminizin PATH-ında qeyd edilib. Bunu yoxlamaq üçün komanda sətrində
ffmpeg
icra edin.
Praktikada tətbiq
Əvvəl qeyd edildiyi kimi, MoviePy YouTube kanallarınız üçün, təlimlər üçün, təqdimatlar üçün və daha bir çox işlərdə sizin sadiq yoldaşınız ola bilər. Bu bacarıqlar video hesabatlar hazırlamaq, reklam materiallarını emal etmək və hətta müsahibələrdə gələcək işəgötürəni öz universallığınızla təsirləndirmək üçün faydalıdır.
Beləliklə, dostlar, artıq MoviePy-nin əsaslarını bildiyinizə görə əsl video sehri yaratmağa hazırsınız. Qarşımızda bizi daha çox video və audio macəraları gözləyir, buna görə də popkornlarınıza hazır olun və kodlama dalğasında bizimlə qalın!
GO TO FULL VERSION