繁体   English   中英

如何在此 PHP function 中设置比特率以合并音频文件

[英]How to set bitrate in this PHP function for merging audio files

我正在通过这个 function 合并多个音频文件 (.wav),但现在我想指定 output 文件的比特率。 我应该怎么办?

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);
}

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

您可以直接执行FFMPEG ,也可以使用PHP 扩展名 就个人而言,我发现exec()路线要容易得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM