문제
웹 사이트에 업로드 된 MP3를 PHP에서 30 초 (또는 다른 길이)로 자동 다듬는 방법이 있습니까? 그렇지 않다면, 동일한 효과를 달성하기 위해 통합 될 수있는 좋은 제 3 자 서비스가 있습니까?
감사.
해결책
당신은 시도 할 수 있습니다 MP3 클래스 phpclass에서. 다음 예는 다음과 같습니다.
require_once './class.mp3.php';
$mp3 = new mp3;
$mp3->cut_mp3('input.mp3', 'output.mp3', 0, -1, 'frame', false);
이 경우, '프레임'은 '두 번째'로 대체하여 컷을 타임 프레임으로 바탕으로 대체 할 수 있습니다.
다른 팁
나는 MP3 파일의 30 초 클립을 즉시 출력하는 스크립트를 모았습니다. 파일을 저장하려는 경우 클래스/라이브러리를 사용하여 다른 옵션 중 하나가 가장 좋을 것입니다. 그러나 미리보기를 재생/다운로드하려면 즉시 더 나을 수 있습니다. 하드 드라이브 공간을 확실히 절약 할 수 있습니다.
확인하십시오 http://www.stephenwalcher.com/2013/06/17/how-to-xtract-and-play-part-of-n-mp3-in-php/.
코드는 다음과 같습니다. 그러나 내 블로그에서 더 깊은 설명을 찾을 수 있습니다.
$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;
데비안/우분투에서 설치를 시도하십시오 mpgtx:
apt-get install mpgtx
mptsplit input.mp3 [00:00:00-00:00:30] -o output.mp3
다른 미세 Linux 배포판에서도 MPGTX를 사용할 수 있거나 소스에서 설치할 수 있다고 확신합니다.
MP3 클래스와 MPGTX로 일부 MP3를 처리하는 데 문제가있었습니다. 여기서 가장 좋은 옵션은 내가 생각하는 FFMPEG입니다. 이 페이지 FFMPEG로 미디어 파일을 분할하는 데 좋은 예가 있습니다.
나는 사용했다 php mp3 내 프로젝트를 위해.
<?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');
?>
귀하의 경우 사용할 수 있습니다 extract(0,30)
또는 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!
원천 : https://github.com/thegallagher/php-mp3/blob/master/readme.md
https://github.com/falahati/php-mp3
PHP-MP3는 MPEG 오디오 (MP3)를 읽고 조작하기위한 간단한 라이브러리입니다.
설치:
composer require falahati/php-mp3:dev-master
MPEG 오디오 컷 :
\falahati\PHPMP3\MpegAudio::fromFile("old.mp3")->trim(10, 30)-saveFile("new.mp3");