2011-03-31 99 views
0

我想加入几个mp3文件并将其作为.mov文件与ffmpeg输出。加入几个mp3文件并输出为mov文件与ffmpeg

任何人都知道命令行来做到这一点?

感谢

+0

http://lyncd.com/2009/02/how-to-merge-mp3-files/ – Brad 2011-03-31 16:53:56

+1

这是帮助做到了不完全编程它,也许问http://audio.stackexchange.com/或http://superuser.com/ – Orbling 2011-03-31 16:57:01

回答

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

相关问题