Otomatik olarak PHP bir mp3 kırpma

4 Cevap php

Otomatik olarak PHP 30 saniye (veya bazı diğer uzunluk) için bir web sitesine yüklenen bir MP3 kırpmak için herhangi bir yolu var mı? Değilse, aynı etkiyi elde etmek için (şeffaf kullanıcıya) entegre edilebilir herhangi bir iyi bir 3. parti hizmet var mı?

Teşekkürler.

4 Cevap

Sen PHPClasses üzerinde MP3 Class deneyebilirsiniz. Aşağıdaki örnek özellikleri:

require_once './class.mp3.php';
$mp3 = new mp3;
$mp3->cut_mp3('input.mp3', 'output.mp3', 0, -1, 'frame', false);

Bu durumda, 'frame', bir zaman çerçevesi üzerindeki kesme tabanına 'ikinci' ile ikame edilebilir.

Debian / ubuntu kurmayı deneyin mpgtx:

apt-get install mpgtx

mptsplit input.mp3 [00:00:00-00:00:30] -o output.mp3

Ben diğer ince Linux dağıtımlardan mpgtx mevcut çok bulmak, ya da sadece kaynak koddan yüklemek eminim.

Ben MP3 Sınıf ve mpgtx hem de bazı MP3 işleme sorunları vardı. Burada iyi seçenek bence ffmpeg olduğunu. This page ffmpeg ile bölme medya dosyalarını bazı iyi örnekler vardır.

Ben anında bir MP3 dosyasının 30 saniyelik bir klip çıktılar bir komut araya. Dosyayı kaydetmek için arıyorsanız, bir sınıf / kütüphaneyi kullanarak diğer seçeneklerden biri muhtemelen iyi olacaktır. Sadece oyun / önizleme indir, anında istiyorsanız Ama, daha iyi olabilir. Bu kesinlikle sabit disk alanından tasarruf edecek.

http://www.stephenwalcher.com/blog/2012/01/17/how-to-extract-and-play-part-of-an-mp3-in-php/ bunu kontrol.

İşte kod, ancak daha derin bir açıklama benim blog bulunabilir.

$getID3 = new getID3();

$id3_info = $getID3->analyze($filename);

list($t_min, $t_sec) = explode(':', $id3_info['length']);
$time = ($t_min * 60) + $t_sec;

$preview = $time / 30; // Preview time of 30 seconds

$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));

$length = strlen($content);

if (!$session->IsLoggedIn()) {
    $length = round(strlen($content) / $preview);
    $content = substr($content, $length / 3 /* Start extraction ~10 seconds in */, $length);
}

header("Content-Type: {$id3_info['mime_type']}");
header("Content-Length: {$length}");
print $content;