Avatar billede benneharli Juniormester
17. oktober 2016 - 14:06 Der er 3 kommentarer og
1 løsning

Merge MP3

Skal løse en opgave hvor jeg skal stykke 2 eller flere MP3 filer sammen. Har prøvet lidt forskelligt med file_put_contents og nogle PHP klasser jeg har fundet, men selvom jeg kan få lavet en fil, bliver det ikke en MP3 fil jeg kan afspille.

Nogen bud?
Avatar billede Slater Ekspert
17. oktober 2016 - 18:12 #1
Jeg prøvede lige at eksperimentere med det, og det virker semi-fint at merge dem sammen. Jeg brugte dog fopen med binary parameter, for at være binary safe. Her er min kode:

<?php
function read($fn) {
    $buffer = '';
    $fh = fopen($fn, 'rb');
    while ( ! feof($fh)) {
        $buffer .= fgets($fh, 1024);
    }
    fclose($fh);
    return $buffer;
}

$file1 = read('data/1.mp3');
$file2 = read('data/2.mp3');

$buffer = $file1 . $file2;

$fh = fopen('output.mp3', 'wb');
fwrite($fh, $buffer);
fclose($fh);


Der ender jeg med en mp3-fil, der godt kan afspilles, men i Windows Media Player kan jeg kun afspille den første fil. I MPC og VLC kan jeg derimod afspille hele filen. Det tyder på, at der et eller andet sted ligger en fil-header, der fortæller hvor lang filen er, men at kun WMP læser denne - de andre ser direkte på fildataene.

Successen af en merge kan også variere med filen. Så vidt jeg ved gør faste bitrate mp3'er ikke brug af globale headers, men har kun headers per chunk, hvorimod VBR mp3'er har noget data på tværs af chunks, som måske kan forstyrre en merge.

Hvis libraries, der skulle forestille at kunne det ikke virker, kunne det måske være filerne der er problemet? Eller prøv en anden afspiller.
Avatar billede eurositi Ekspert
17. oktober 2016 - 20:06 #2
MakeItOne-MP3 Album Maker har tidligere løst dén slags problemer for mig uden fejl:
http://www.makeitone.com/downloads/index.htm
- Programmet er ikke splinternyt, men det er MP3-formatet på den anden side heller ikke. ;)
Avatar billede benneharli Juniormester
18. oktober 2016 - 00:32 #3
MakeItOne ser jo meget fint ud, men det løser ikke mit problem... det skal være web og PHP
Avatar billede benneharli Juniormester
18. oktober 2016 - 01:16 #4
Ok, det er næste for dumt... det viser sig at eksempel 1 og 2 jeg arbejdede med havde "tomme" mp3 filer... kun eksempel 3 havde lyd... så de fleste af de ting jeg havde prøvet virkede rent faktisk...

Men tak for endnu en mulighed :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester