2012-04-06 83 views
1

我正在通过此功能合并多个音频文件(.wav),但现在我要指定输出文件的比特率。我该怎么办?如何在此PHP函数中设置合并音频文件的比特率

function joinwavs($wavs) { 
    $fields = join('/', array('H8ChunkID', 'VChunkSize', 'H8Format', 
     'H8Subchunk1ID', 'VSubchunk1Size', 
     'vAudioFormat', 'vNumChannels', 'VSampleRate', 
     'VByteRate', 'vBlockAlign', 'vBitsPerSample')); 
    $data = ''; 
    foreach ($wavs as $wav) { 
     $wav = str_replace('http://example.com/', '', $wav); 
     $fp = fopen($wav, 'rb'); 
     $header = fread($fp, 36); 
     $info = unpack($fields, $header); 
     // read optional extra stuff 
     if ($info['Subchunk1Size'] > 16) { 
      $header .= fread($fp, ($info['Subchunk1Size'] - 16)); 
     } 
     // read SubChunk2ID 
     $header .= fread($fp, 4); 
     // read Subchunk2Size 
     $size = unpack('vsize', fread($fp, 4)); 
     $size = $size['size']; 
     // read data 
     $data .= fread($fp, $size); 
    } 
    return ($header . pack('V', strlen($data)) . $data); 
} 
+0

只是想知道:你选择PHP来处理音频文件的任何原因? – 2012-04-06 11:28:42

回答

0

为此使用FFMPEG。不要直接编辑音频文件,尤其是当您不仅仅是连接文件时。

您可以直接执行FFMPEG或使用PHP extension。就我个人而言,我发现exec()路线更容易。

相关问题