2009-09-10 8 views
17

PHP में 30 सेकंड (या कुछ अन्य लंबाई) तक किसी वेबसाइट पर अपलोड किए गए एमपी 3 को स्वचालित रूप से ट्रिम करने के कोई तरीके हैं? यदि नहीं, तो क्या कोई भी अच्छी तृतीय पक्ष सेवाएं हैं जिन्हें समान प्रभाव प्राप्त करने के लिए एकीकृत किया जा सकता है (उपयोगकर्ता के लिए पारदर्शी रूप से)?PHP में स्वचालित रूप से एक एमपी 3 को ट्रिम करना

धन्यवाद।

उत्तर

19

आप PHPClasses पर MP3 Class को आजमा सकते हैं। यह निम्न उदाहरण विशेषताएं:

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

इस मामले में, 'फ्रेम' एक समय सीमा पर कटौती के आधार के लिए 'दूसरा' के साथ प्रतिस्थापित किया जा सकता है।

2

डेबियन में/ubuntu mpgtx स्थापित करने का प्रयास करें:

apt-get install mpgtx 

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

मुझे यकीन है कि आप भी अन्य ललित Linux distros में mpgtx दिखाई देंगे, या बस स्रोत से स्थापित कर रहा हूँ।

2

मुझे एमपी 3 कक्षा और एमपीजीटीएक्स दोनों के साथ कुछ एमपी 3 प्रोसेसिंग में समस्याएं थीं। मुझे लगता है कि सबसे अच्छा विकल्प ffmpeg है। This page में ffmpeg के साथ मीडिया फ़ाइलों को विभाजित करने के कुछ अच्छे उदाहरण हैं।

3

मैंने एक स्क्रिप्ट एक साथ रखी जो फ्लाई पर एमपी 3 फ़ाइल की 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; 
+2

मैं जानता हूँ कि don'y अगर कुछ getID3 lib में बदल गया था या यह 'आपके कोड में एक बग: id3_info सरणी में कोई लंबाई तत्व नहीं है। यह playtime_string होना चाहिए। – latata

+0

लिंक रास्ते से तोड़ दिया गया है। –

+0

लिंक फिक्स्ड। अब जाने के लिए अच्छा होना चाहिए। –

0

मैंने अपनी परियोजना के लिए 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) उपयोग कर सकते हैं।

+0

जैसा कि यह अच्छी लिपि है, मुझे पता होगा कि यह एलजीपीएल के तहत उपलब्ध है जो मुझे विश्वास नहीं है कि अन्य लाइसेंस के रूप में लचीला है। – Antony

+0

@ एंटनी, एलजीपीएल बहुत लचीला है और जब तक आप लाइब्रेरी में कुछ बदल नहीं लेते हैं, तो आपको पैकेज के साथ लाइसेंस टेक्स्ट फ़ाइल को वितरित करने के अलावा कुछ भी करने की ज़रूरत नहीं है। और आप इसे वाणिज्यिक परियोजनाओं में भी इस्तेमाल कर सकते हैं। –

0

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

पीएचपी-एमपी 3 पढ़ने और एमपीईजी ऑडियो (एमपी 3) जोड़ तोड़ के लिए एक सरल पुस्तकालय है।

स्थापित करें:

composer require falahati/php-mp3 

कट MPEG ऑडियो:

\falahati\PHPMP3\MpegAudio::fromFile("old.mp3")->trim(10, 30)-saveFile("new.mp3"); 
0
//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

संबंधित मुद्दे