<?php
header('Content-Type: application/json');

// আপলোড করা ফাইল সংরক্ষণের জন্য একটি ফোল্ডার তৈরি করুন
$upload_dir = 'uploads/';
if (!is_dir($upload_dir)) {
    mkdir($upload_dir, 0777, true);
}

// ভিডিও ফাইলটি রিসিভ করুন
$video_file_path = $upload_dir . uniqid('video_', true) . '.webm';
if (isset($_FILES['video']) && move_uploaded_file($_FILES['video']['tmp_name'], $video_file_path)) {
    // বর্ণনা রিসিভ করুন
    $description = isset($_POST['description']) ? $_POST['description'] : '';
    $spoken_text = "মডেল বলছে: " . $description;

    // TTS (Text-to-Speech) ব্যবহার করে অডিও ফাইল তৈরি করুন
    $audio_file_path = $upload_dir . uniqid('audio_', true) . '.mp3';

    // Python স্ক্রিপ্ট কল করুন
    $python_path = '/usr/bin/python3'; // আপনার সার্ভারের পাইথন পথের উপর নির্ভর করে
    $tts_script_path = '/path/to/your/tts_script.py'; // আপনার TTS স্ক্রিপ্টের সঠিক পথ দিন
    $command_audio = "$python_path $tts_script_path " . escapeshellarg($spoken_text) . " " . escapeshellarg($audio_file_path) . " 2>&1";
    shell_exec($command_audio);

    // FFmpeg কমান্ড ব্যবহার করে ভিডিও এবং অডিও মার্জ করুন
    $output_video_path = $upload_dir . uniqid('final_', true) . '.mp4';
    $ffmpeg_command = "ffmpeg -i " . escapeshellarg($video_file_path) . " -i " . escapeshellarg($audio_file_path) . " -c:v copy -c:a aac -strict experimental " . escapeshellarg($output_video_path) . " 2>&1";
    $output_log = shell_exec($ffmpeg_command); // লগ পেতে ব্যবহার করা হয়

    // অডিও এবং শব্দহীন ভিডিও ফাইল ডিলিট করুন
    @unlink($video_file_path);
    @unlink($audio_file_path);

    if (file_exists($output_video_path)) {
        echo json_encode([
            'success' => true,
            'message' => 'Video merged successfully.',
            'video_url' => $output_video_path
        ]);
    } else {
        echo json_encode([
            'success' => false,
            'message' => 'FFmpeg merging failed.',
            'log' => $output_log
        ]);
    }
} else {
    echo json_encode(['success' => false, 'message' => 'Video upload failed.']);
}
?>