0
A
回答
0
這是我用的http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
<?php
// This is the class to generate mp3 files based on the anti-spam words
// Based on the PHP mp3 class at http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
// Output code based on the FPDF class at http://www.fpdf.org
class Mp3Helper
{
function convert($fromFile, $toFile)
{
exec("ffmpeg -i $fromFile -ab 128k $toFile");
unlink($fromFile);
}
function concatenate($tempFile, $phrases)
{
exec("mp3wrap " . $tempFile . " " . $phrases);
}
function fix($tempFile, $toFile)
{
exec("ffmpeg -y -i " . $tempFile . " -acodec copy " .$toFile);
unlink($tempFile);
}
}
?>
<?php
// This is the class to generate mp3 files based on the anti-spam words
// Based on the PHP mp3 class at http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
// Output code based on the FPDF class at http://www.fpdf.org
class Mp3
{
var $str;
var $time;
var $frames;
// Create a new mp3
function mp3($path="")
{
if($path!="")
{
$this->str = file_get_contents($path);
}
}
// Put an mp3 behind the first mp3
function mergeBehind($mp3)
{
$this->str .= $mp3->str;
}
// Calculate where's the end of the sound file
function getIdvEnd()
{
$strlen = strlen($this->str);
$str = substr($this->str,($strlen-128));
$str1 = substr($str,0,3);
if(strtolower($str1) == strtolower('TAG'))
{
return $str;
}
else
{
return false;
}
}
// Calculate where's the beginning of the sound file
function getStart()
{
$strlen = strlen($this->str);
for($i=0;$i<$strlen;$i++)
{
$v = substr($this->str,$i,1);
$value = ord($v);
if($value == 255)
{
return $i;
}
}
}
// Remove the ID3 tags
function striptags()
{
//Remove start stuff...
$newStr = '';
$s = $start = $this->getStart();
if($s===false)
{
return false;
}
else
{
$this->str = substr($this->str,$start);
}
//Remove end tag stuff
$end = $this->getIdvEnd();
if($end!==false)
{
$this->str = substr($this->str,0,(strlen($this->str)-129));
}
}
// Display an error
function error($msg)
{
//Fatal error
die('<strong>audio file error: </strong>'.$msg);
}
// Send the new mp3 to the browser
function output($path)
{
//Output mp3
//Send to standard output
if(ob_get_contents())
$this->error('Some data has already been output, can\'t send mp3 file');
if(php_sapi_name()!='cli')
{
//We send to a browser
header('Content-Type: audio/mpeg3');
if(headers_sent())
$this->error('Some data has already been output to browser, can\'t send mp3 file');
header('Content-Length: '.strlen($this->str));
header('Content-Disposition: attachment; filename="'.$path.'"');
}
echo $this->str;
return '';
}
}
?>
+0
我可以在視頻中放置圖像嗎? – 2011-03-31 19:16:10
+0
這不是一個視頻,它只是連接MP3,但與執行ffmepg作爲一個exec的例子,你可以給如何把它放在一起的想法,:) – jjchiw 2011-03-31 20:13:47
相關問題
- 1. FFMPEG將mp4文件和mp3文件合併爲mp4
- 2. 發送.mov文件通過管道的ffmpeg(標準輸入)
- 3. 使用AVAssetReader和AVAssetWriter將* .mp3與* .mov文件合併
- 4. 閱讀標籤爲幾個MP3文件
- 5. PS2PDF幾個輸入文件
- 6. ffmpeg輸出文件不同
- 7. 爲什麼這兩個ffmpeg文件不同(管道與文件輸出)?
- 8. FFMPEG:如何使用FFMPEG將附加圖片(APIC)從源mp3文件轉碼爲目標mp3文件?
- 9. 比較兩個文件並寫入新文件,但只輸出幾行?
- 10. 在fluent-ffmpeg中輸出多個文件
- 11. 合併.mp3文件合併成一個文件.MP3的Android
- 12. 加入兩個MP3文件到一個
- 13. 如何使用ffmpeg將多個mp3文件重疊到一個mp3文件?
- 14. 輸入一個文本文件,並在Python中寫入多個輸出文件
- 15. 合併多個.mp3文件
- 16. 合併多個mp3文件
- 17. gzip幾個文件,並將它們管入一個輸入
- 18. 用Jlayer播放幾個mp3文件
- 19. 讀取多個文件並寫入多個輸出文件
- 20. 通過使用FFmpeg合併2個mp3文件
- 21. 連接mp3文件或使用java加入mp3文件
- 22. ffmpeg幾個文件的處理
- 23. 將許多[兩個mp3]文件加入許多[一個]文件
- 24. 以2個XML文件作爲輸入並生成輸出XML文件的XSLT
- 25. 在多個文件中輸入多行文件並輸出文件名
- 26. 如何合併/加入MP3文件與C#?
- 27. 輸出到幾個日誌文件? (Unity3D)
- 28. 將.mov文件轉換爲.h264文件
- 29. 從幾個輸入文件填充表
- 30. 調整兩個輸入mp3文件的體積而使用的ffmpeg
http://lyncd.com/2009/02/how-to-merge-mp3-files/ – Brad 2011-03-31 16:53:56
這是幫助做到了不完全編程它,也許問http://audio.stackexchange.com/或http://superuser.com/ – Orbling 2011-03-31 16:57:01