Frage

Gibt es eine Möglichkeit, einen MP3 automatisch auf eine Website auf 30 Sekunden (oder eine andere Länge) in PHP zu schneiden? Wenn nicht, gibt es gute Dienste von Drittanbietern, die (transparent für den Benutzer) integriert werden könnten, um den gleichen Effekt zu erzielen?

Vielen Dank.

War es hilfreich?

Lösung

Sie könnten die ausprobieren MP3 -Klasse auf Phpclass. Es enthält das folgende Beispiel:

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

In diesem Fall kann der "Rahmen" durch "Sekunde" ersetzt werden, um den Schnitt auf einem Zeitrahmen zu stützen.

Andere Tipps

Ich habe ein Skript zusammengestellt, das einen 30 -Sekunden -Clip einer MP3 -Datei im laufenden Fliegen ausgibt. Wenn Sie die Datei speichern möchten, ist eine der anderen Optionen mit einer Klasse/Bibliothek wahrscheinlich am besten. Wenn Sie jedoch nur die Vorschau spielen/herunterladen möchten, ist möglicherweise besser. Es wird Ihnen auf jeden Fall Festplattenspeicher ersparen.

Prüfen Sie es an http://www.stephenwalcher.com/2013/06/17/how-to-exact-and-play-part-of-an-mp3-in-php/.

Hier ist der Code, aber eine tiefere Erklärung finden Sie in meinem 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;

Versuchen Sie in Debian/Ubuntu zu installieren MPGTX:

apt-get install mpgtx

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

Ich bin sicher, dass Sie MPGTX auch in anderen feinen Linux -Distributionen verfügbar finden oder einfach nur bei der Quelle installieren.

Ich hatte Probleme, einige MP3s mit MP3 -Klasse und MPGTX zu verarbeiten. Die beste Option hier ist FFMPEG, denke ich. Diese Seite hat einige gute Beispiele zum Aufteilen von Mediendateien mit FFMPEG.

ich benutzte PHP mp3 für mein Projekt.

<?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');
?>

Für Ihren Fall können Sie verwenden extract(0,30) oder extract(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!

Quelle : https://github.com/thegallagher/php-mp3/blob/master/readme.md

https://github.com/falahati/php-mp3

PHP-MP3 ist eine einfache Bibliothek zum Lesen und Manipulieren von MPEG Audio (MP3).

Installieren:

composer require falahati/php-mp3:dev-master

MPEG Audio schneiden:

\falahati\PHPMP3\MpegAudio::fromFile("old.mp3")->trim(10, 30)-saveFile("new.mp3");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top