FFmpeg, güçlü bir multimedya işleme kütüphanesi olup ses ve video dosyaları üzerinde çeşitli işlemler yapmaya olanak tanır. PHP ile entegre edildiğinde, videoları dönüştürmek, kırpmak, birleştirmek ve hatta üzerine yazılar eklemek gibi birçok işlem gerçekleştirilebilir.
Bu makalede, PHP ile FFmpeg’in nasıl kullanılacağını ele alacağız. Öncelikle FFmpeg’in sistemimize nasıl kurulacağını ve PHP’den nasıl çağrılacağını inceleyeceğiz. Ardından, temel video düzenleme işlemleri ve FFmpeg komutlarının nasıl çalıştırılacağını adım adım açıklayacağız. Eğer dinamik olarak video işleme ihtiyacınız varsa, PHP ile FFmpeg kullanımı size büyük kolaylık sağlayacaktır.
Kod detaylarına geçmeden önce, FFmpeg’in ne olduğunu ve PHP ile nasıl entegre edileceğini anlamak için temel bilgilere göz atalım.
FFmpeg İndir:
Dosyaları Çıkarma:
Ortam Değişkenlerini Tanımlama:
Kurulumu Doğrulama:
Komut İstemi (CMD) açın ve şu komutu çalıştırın:
ffmpeg -version
FFmpeg sürüm bilgisi görüntüleniyorsa kurulum başarılıdır.
Bu uygulama ile seçili olan bir klasör içinde ki tüm fotoğrafları videoya çevireceğiz.
PHP FFmpeg Kurulumu
Öncelikle PowerShell veya Terminal açarak proje klasörüne gidin:
cd C:\laragon\www\Uygulamalar\ffmpeg
Ardından, Composer kullanarak FFmpeg kütüphanesini projemize dahil edelim:
$ composer require php-ffmpeg/php-ffmpeg
index.php dosyası oluşturarak aşağıdaki kodları ekleyin: Her satırın yanında veya üst tarafında ne işe yardığını gösteren yorum satırları mevcuttur.
<?php
require 'vendor/autoload.php';
// FFmpeg'in tam yolunu belirtelim
$ffmpeg_path = 'C:/ffmpeg/bin/ffmpeg.exe'; // FFmpeg'in tam yolu
// Resimlerin bulunduğu dizin
$image_folder = __DIR__ . '/images/'; // PHP dosyasının bulunduğu dizine göre
// Video oluşturulacak yol
$output_video = __DIR__ . '/output_video.mp4'; // Çıktı video yolu
// Resim dosyalarını alalım (hem .jpg hem de .jpeg)
$images = glob($image_folder . '*.{jpg,jpeg}', GLOB_BRACE);
// Eğer resimler varsa, video oluştur
if (!empty($images)) {
// Resimleri sıralayalım
sort($images);
// FFmpeg komutunu hazırla
$command = $ffmpeg_path . ' -framerate 1 -i "' . $image_folder . '%d.jpg" -c:v libx264 -r 30 -pix_fmt yuv420p "' . $output_video . '"';
// Komutu çalıştır ve çıktıyı al
exec($command, $output, $status);
// Durum kontrolü
if ($status === 0) {
echo "Video başarıyla oluşturuldu: " . $output_video;
} else {
// Hata mesajını ekrana yazdır
echo "Bir hata oluştu!\n";
echo "Hata Durumu: " . $status . "\n";
echo "Çıktı: \n";
echo implode("\n", $output); // FFmpeg komutunun çıktısı
}
} else {
echo "Resim bulunamadı! Lütfen 'images' klasöründe .jpg veya .jpeg uzantılı resimler olduğundan emin olun.";
}
?>
-framerate 1
parametresi, her bir resmin kaç saniye ekranda kalacağını belirler. Bunu artırarak veya azaltarak videonun hızını değiştirebilirsiniz.-c:v libx264
parametresi, videonun H.264 formatında kaydedilmesini sağlar.Bu adımları takip ederek PHP ile FFmpeg kullanarak fotoğraflardan bir video oluşturabilirsiniz. Daha gelişmiş işlemler için videoya ses ekleme, efektler uygulama ve video kalitesini ayarlama gibi işlemleri de keşfedebilirsiniz.
Yorumlar (0)