≡ Menu

(PHP) Memotong Video Sangat Mudah Dengan FFMPEG

FFMPEG Logo

Memotong video memang tidak dapat dilakukan dengan mudah, dan pastinya sudah terbiasa menggunakan semacam aplikasi/software yang menyediakan fitur cut atau trim video dengan sekali klik. Kebanyakan aplikasi atau software menggunakan ffmpeg untuk memudahkan untuk memotong sebuah video. Dan disini Saya akan menjelaskan sedikit cara untuk memotong video di PHP dengan bantuan ffmpeg.

Jika melalui aplikasi atau software yang bukan buatan sendiri terkadang terdapat kekurangan yang ada pada hasil video, dan kemungkinan video tersebut telah dikompress dari bitrate dan lain-lain. Tentunya banyak orang yang tidak suka jika hasil dari video yang telah dipotong berbeda kualitas atau semakin buruk dari bentuk aslinya. Tapi sekarang jika kamu ingin memotong video dengan kualitas yang sama seperti aslinya, hanya cukup menyediakan PHP dan FFMPEG saja.

Sebelumnya pastikan telah menginstall ffmpeg di server, untuk yang memakai hosting bisa menginstall melalui SSH Shell atau tanyakan ke staff hosting suruh untuk install ke server. Karena ffmpeg bukan sebuah fungsi asli dari PHP tapi sebuah file berbentuk binnary (.exe) yang jika di PHP dapat dipanggil dengan bantuan exec(). Dan sebenarnya tidak hanya fungsi exec() saja, tapi fungsi sejenis passthru(), shell_exec() yang digunakan untuk mengeksekusi file melalui command.
Jika server telah siap untuk digunakan, silahkan amati sedikit kode dibawah ini.

<?php
function _str($dari, $hingga){
$st  = new DateTime($dari);
$sc = new DateTime($hingga);
$diff = $st->diff($sc);
return $diff->format('%H:%I:%S');
}
$ffmpeg = '/usr/local/bin/ffmpeg';
$video = '/home/user/public_html/video.avi';
$hasil='/home/user/public_html/output.avi';
$dari = '01:00:00';
$hingga = '01:30:00';
$parsing = _str($dari, $hingga);
echo exec("$ffmpeg -i $video -ss $dari -t $parsing -vcodec copy -acodec copy $hasil");
?>

Penjelasan

function _str – Digunakan untuk mengetahui jarak (selisih) antara waktu sebelum hingga sesudah dalam bentuk jam:menit:detik. Sebaiknya dibagian fungsi ini tidak perlu diubah.

$ffmpeg – Ubah direktori dimana ffmpeg diinstall. Jika menggunakan linux, sebaiknya jangan ubah apapun.

$video – ubah sesuai direktori file video yang akan dipotong. Sebaiknya gunakan fullpath seperti contoh diatas.

$output – ubah sesuai direktori dimana hasil video yang terpotong tadi akan disimpan. Sebaiknya gunakan fullpath seperti contoh diatas.

$dari – ubah sesuai waktu awal video yang ingin dipotong.

$hingga – ubah sesuai waktu akhir video yang ingin dipotong.

$parsing – digunakan untuk mengambil selisih waktu antara string $hingga dan $dari dengan bantuan fungsi _str.

exec – Untuk mengeksekusi command dari ffmpeg.

Dengan kode diatas, sudah dapat memotong video tanpa khawatir kualitas video, karena kualitas yang akan dihasilkan sama dengan video asli. Dan sengaja memakai selisih waktu karena command -t di ffmpeg berfungsi sebagai jarak video yang akan dihasilkan. Banyak sekali yang salah menggunakan command -t sebagai akhir video yang akan dipotong, dan hasilnya pun pasti akan mengejutkan.

Kamu juga dapat menghilangkan suara video dengan menambah command -an. Untuk format waktu yang ada di string $dari dan $hingga adalah jam:menit:detik. Diatas telah diatur untuk selisih waktu 30 menit.

Sebenarnya mudah sekali memotong video dengan ffmpeg hanya saja Saya sulit menjelaskannya, tapi tidak masalah asalkan dapat dipahami. 😀
Jika ada yang ditanyakan silahkan berkomentar.

Semoga bermanfaat dan Selamat mencoba

Promotion

About the author: Apapun yang Saya ketahui dan Saya bagikan. Semuanya berawal dari masa yang disebut pembelajaran.

{ 0 comments… add one }

Leave a Comment