Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

ffmpeg audio en video niet synchroon

Pagina: 1
Acties:

  • DJVG
  • Registratie: April 2006
  • Laatst online: 19-11 14:58

DJVG

Gewoon DJVG

Topicstarter
Hallo,

Ik heb het volgende stukje code om bestanden om te zetten naar een .flv bestand:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function makeMultipleTwo ($value) {
        $sType = gettype($value/2);
        
        if($sType == "integer")
        {
            return $value;
        } else {
            return ($value-1);
        }
} 

    $srcFile = '/var/www/web19/convert/' . $out['upload_name'] . '.' . $out['upload_org_ext'];
    $destFile = '/var/www/web19/convert/tmp/' . $out['upload_name'] . '.flv';
    $ffmpegPath = '/usr/bin/ffmpeg';
    $flvtool2Path = '/usr/local/bin/flvtool2';
    $ffmpegObj = new ffmpeg_movie($srcFile);
    $srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
    $srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
    $srcFPS = $ffmpegObj->getFrameRate();
    $srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
    $srcAR = $ffmpegObj->getAudioSampleRate();
    exec($ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . " -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile . " | " . $flvtool2Path . " -U stdin " . $destFile);
?>

Het script werkt zonder problemen, alleen het audio en video spoor lopen niet synchroon.

Weet iemand toevallig waar dat aan kan liggen?
Alvast bedankt, DJVG

[ Voor 7% gewijzigd door DJVG op 04-09-2007 14:15 . Reden: toevoeging ]

Als iedereen aan zichzelf denkt, word er aan iedereen gedacht!


  • JochemK
  • Registratie: Maart 2003
  • Laatst online: 25-11 10:41
wilde gok: de $srcAB moet je niet delen door 1000 maar door 1024 ???

  • RadioheadRules
  • Registratie: November 2003
  • Laatst online: 12-03-2009
Ik ben ook eens met FFMPEG bezig geweest en kwam toen ook tot de conclusie dat audio vaak niet synchroon loopt bij het omzetten naar FLV. Qua aanpassingen aan parameters was daar niet veel aan te doen.

Kijk eens naar Mencoder. Dit werkt wel prima naar FLV toe en geeft als je geen flv als INPUT gebruikt bijna 100% van de gevallen goede audiosync terug.

Mencoder is prima naast ffmpeg te gebruiken. Bijvoorbeeld ffmpeg-php om gegevens uit te lezen en Mencoder zelf voor het omzetten.