&1"); // Cek apakah format sudah pas $sudah_pas = false; if (strpos($cek_info, 'Video: h264') !== false && strpos($cek_info, 'Audio: aac') !== false) { $sudah_pas = true; } try { if ($sudah_pas) { // Langsung salin jika format sudah benar copy($file_input, $file_output_mp4); $pesan = "✅ Format video sudah sesuai, tidak perlu dikonversi."; } else { // KONVERSI OTOMATIS ke MP4 H.264 $pesan = "⌛ Sedang mengkonversi video ke format standar... Mohon tunggu."; $perintah = "\"$ffmpeg_path\" -i \"$file_input\" -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 128k -movflags +faststart -y \"$file_output_mp4\""; shell_exec($perintah); // Cek hasil konversi if (!file_exists($file_output_mp4) || filesize($file_output_mp4) < 1024) { throw new Exception("Konversi gagal. File rusak atau tidak didukung."); } $pesan .= " ✅ Konversi selesai."; } // 3. BUAT THUMBNAIL OTOMATIS (Ambil gambar di detik ke 3) $file_thumb = $folder_thumb . $nama_acak . ".jpg"; $perintah_thumb = "\"$ffmpeg_path\" -i \"$file_output_mp4\" -ss 00:00:03 -vframes 1 -q:v 2 -y \"$file_thumb\""; shell_exec($perintah_thumb); // 4. ENKRIPSI FILE VIDEO & THUMBNAIL $nama_file_akhir = $nama_acak . ".enc"; $nama_thumb_akhir = $nama_acak . ".enc"; if (!enkripsiFile($file_output_mp4, $folder_video . $nama_file_akhir)) { throw new Exception("Gagal mengenkripsi file video."); } if (!enkripsiFile($file_thumb, $folder_thumb . $nama_thumb_akhir)) { throw new Exception("Gagal mengenkripsi thumbnail."); } // 5. HAPUS FILE MENTAH / SEMENTARA (Agar aman) @unlink($file_input); @unlink($file_output_mp4); @unlink($file_thumb); // 6. SIMPAN KE DATABASE $query = $db->prepare(" INSERT INTO video (judul, deskripsi, genre, negara, nama_file, nama_thumbnail, id_pengguna, diunggah_pada) VALUES (:judul, :deskripsi, :genre, :negara, :nama_file, :nama_thumbnail, :id_pengguna, NOW()) "); $query->bindParam(':judul', $judul); $query->bindParam(':deskripsi', $deskripsi); $query->bindParam(':genre', $genre); $query->bindParam(':negara', $negara); $query->bindParam(':nama_file', $nama_file_akhir); $query->bindParam(':nama_thumbnail', $nama_thumb_akhir); $query->bindParam(':id_pengguna', $id_pengguna); $query->execute(); // BERHASIL $pesan = "🎉 Video berhasil diunggah, diproses, dan disimpan!"; $pesanTipe = "sukses"; // Reset form jika sukses $judul = $deskripsi = $genre = $negara = ""; } catch (Exception $e) { $pesan = "❌ Terjadi kesalahan: " . $e->getMessage(); $pesanTipe = "gagal"; // Bersihkan file sampah jika ada error @unlink($file_input); @unlink($file_output_mp4); @unlink($file_thumb); } } } ?> Unggah Video | Platform Streaming

Unggah Video Baru

Informasi: Sistem mendukung SEMUA format video (MP4, MKV, AVI, MOV, FLV, dll).
Sistem akan otomatis mengkonversi ke format standar agar bisa diputar di browser. Proses mungkin memakan waktu beberapa saat tergantung ukuran file.