Question

Existe-t-il un moyen de découper automatiquement un fichier MP3 téléchargé sur un site Web à 30 secondes (ou une autre durée) en PHP? Sinon, y a-t-il de bons services tiers qui pourraient être intégrés (de manière transparente pour l'utilisateur) pour obtenir le même effet?

Merci.

Était-ce utile?

La solution

Vous pouvez essayer la la classe MP3 sur PHPClasses. Il présente l'exemple suivant:

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

Dans ce cas, le "cadre" peut être remplacé par "deuxième" pour baser la coupe sur une période.

Autres conseils

J'ai mis en place un script qui génère un clip MP3 de 30 secondes à la volée. Si vous souhaitez enregistrer le fichier, l'une des autres options utilisant une classe / bibliothèque sera probablement la meilleure. Mais, si vous voulez juste lire / télécharger l'aperçu, à la volée, ça pourrait être mieux. Cela vous permettra certainement d'économiser de l'espace sur votre disque dur.

Découvrez-le à http://www.stephenwalcher.com/2013/06/17/how-to-extract-and-play-part-of-an-mp3-in-php/ .

Voici le code, mais vous trouverez une explication plus détaillée sur mon blog.

$getID3 = new getID3();

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

list($t_min, $t_sec) = explode(':', $id3_info['playtime_string']);
$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;

Dans Debian / ubuntu, essayez d’installer mpgtx :

apt-get install mpgtx

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

Je suis sûr que mpgtx est également disponible dans d'autres distributions Linux, ou que vous l'installez simplement à partir des sources.

J'ai eu des problèmes lors du traitement de certains MP3 avec MP3 Class et mpgtx. La meilleure option ici est ffmpeg je pense. Cette page contient de bons exemples de fractionnement de fichiers multimédias avec ffmpeg. .

J'ai utilisé un PHP MP3 pour mon projet.

<?php
//Extract 30 seconds starting after 10 seconds.
$path = 'path.mp3';
$mp3 = new PHPMP3($path);
$mp3_1 = $mp3->extract(10,30);
$mp3_1->save('newpath.mp3');
?>

Dans votre cas, vous pouvez utiliser extrait (0,30) ou extrait (30,60) .

//Merge two files
 $path = 'path.mp3';
 $path1 = 'path1.mp3';
 $mp3 = new PHPMP3($path);

 $newpath = 'path.mp3';
$mp3->striptags();

$mp3_1 = new PHPMP3($path1);
$mp3->mergeBehind($mp3_1);
  $mp3->striptags();

 $mp3->setIdv3_2('01','Track Title','Artist','Album','Year','Genre','Comments','Composer','OrigArtist','Copyright','url','encodedBy');

$mp3->save($newpath);

//Extract 30 seconds starting after 10 seconds.
  $path = 'path.mp3';
$mp3 = new PHPMP3($path);
$mp3_1 = $mp3->extract(10,30);
$mp3_1->save('newpath.mp3');

//Extract the exact length of time
$path = 'path.mp3';
$mp3 = new PHPMP3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
//note that this is the exact length!

source: https://github.com/thegallagher/PHP -MP3 / blob / master / README.md

https://github.com/falahati/PHP-MP3

  

PHP-MP3 est une simple bibliothèque permettant de lire et de manipuler les fichiers audio MPEG.   (MP3).

Installer:

composer require falahati/php-mp3:dev-master

Couper l'audio MPEG:

\falahati\PHPMP3\MpegAudio::fromFile("old.mp3")->trim(10, 30)-saveFile("new.mp3");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top