PHP에서 웹 사이트에 업로드 된 MP3 파일을 30 초 (또는 다른 길이)로 자동자를 수있는 방법이 있습니까? 그렇지 않은 경우, 동일한 효과를 얻기 위해 (사용자에게 투명하게) 통합 될 수있는 우수한 제 3 자 서비스가 있습니까?PHP에서 mp3 자동 자르기
감사합니다.
PHP에서 웹 사이트에 업로드 된 MP3 파일을 30 초 (또는 다른 길이)로 자동자를 수있는 방법이 있습니까? 그렇지 않은 경우, 동일한 효과를 얻기 위해 (사용자에게 투명하게) 통합 될 수있는 우수한 제 3 자 서비스가 있습니까?PHP에서 mp3 자동 자르기
감사합니다.
PHPClasses에서 MP3 Class을 사용해보세요.
require_once './class.mp3.php';
$mp3 = new mp3;
$mp3->cut_mp3('input.mp3', 'output.mp3', 0, -1, 'frame', false);
이 경우 '프레임'은 '초'로 대체하여 시간 프레임에서 기준으로 삼을 수 있습니다. 데비안에서
는/우분투는 mpgtx를 설치하려고 :
apt-get install mpgtx
mptsplit input.mp3 [00:00:00-00:00:30] -o output.mp3
난 당신이 너무 다른 좋은 리눅스 배포판에서 mpgtx 사용할 수 발견, 아니면 그냥 소스에서 설치할 수 있습니다 확신합니다.
MP3 클래스와 mpgtx로 일부 mp3를 처리하는 데 문제가있었습니다. 가장 좋은 옵션은 내가 생각하는 ffmpeg입니다. This page에는 ffmpeg로 미디어 파일을 분할하는 좋은 예가 있습니다.
나는 MP3 파일의 30 초 클립을 즉시 출력하는 스크립트를 작성했습니다. 파일을 저장하려는 경우 클래스/라이브러리를 사용하는 다른 옵션 중 하나가 가장 적합 할 것입니다. 그러나 미리보기를 재생/다운로드하고 싶다면 즉시 작동하는 것이 좋습니다. 그것은 확실히 당신에게 하드 드라이브 공간을 저장합니다.
http://www.stephenwalcher.com/2013/06/17/how-to-extract-and-play-part-of-an-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;
내 프로젝트에 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)
를 사용할 수 있습니다.
많은 부분이 다른 스크립트만큼이나 유연하다고 믿는 LGPL에서 사용할 수 있다는 점을 잘 알고 있습니다. – Antony
@Antony, LGPL은 매우 유연하며 라이브러리 자체에서 무언가를 변경하지 않으면 패키지와 함께 라이선스 텍스트 파일을 배포하는 것 외에는 특별한 작업을 수행 할 필요가 없습니다. 그리고 상업용 프로젝트에서도 사용할 수 있습니다. –
https://github.com/falahati/PHP-MP3
PHP-MP3는 읽기와 MPEG 오디오 (MP3)를 조작하기위한 간단한 라이브러리입니다.
설치 :
composer require falahati/php-mp3
컷 MPEG 오디오 :
\falahati\PHPMP3\MpegAudio::fromFile("old.mp3")->trim(10, 30)-saveFile("new.mp3");
//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
뭔가가 getID3의 lib에 변경된 경우 알거나 don'y '당신의 코드 버그 : id3_info 배열에는 길이 요소가 없습니다. playtime_string이어야합니다. – latata
링크가 끊어졌습니다. –
링크가 수정되었습니다. 지금 가는게 좋을거야. –