• 15-12-2009, 20:19:54
    #1
    Üyeliği durduruldu
    Ffmpeg ile mp4'ten dönüştürdüğüm flv videolarını flv player çalarken süreyi almıyor. Çevirken eksik birşey mi yapıyorum acaba?
    ffmpeg kodum aşağıdaki gibi:
    exec($ffmpegPath . " -i " . $videodosyam . " -ar " . $AR . " -ab " . $AB . " -f flv -s " . $Width . "x" . $Height . " " . $hedefdosya. " | " . $flvtool2Path . " -U -duration:$sure " . $hedefdosya);
  • 15-12-2009, 21:03:56
    #2
    videolardan birer tane flv ve mp4 tane örnek görebilirmiyiz, meta bilgisine bakıp sorunu anlayabiliriz.
  • 16-12-2009, 14:01:11
    #3
    Üyeliği durduruldu
    http://rapidshare.com/files/321560437/videolar.rar mp4 ve ffmpeg ile dönüştürülmüş flv'yi rapide yükledim.
  • 18-12-2009, 15:51:12
    #4
    Üyeliği durduruldu
    Bu konuda fikri olan yok mu?
  • 18-12-2009, 18:59:47
    #5
    videoları neyle çevirdiniz bilmiyorum ancak meta bilgilerinde "duration:" yok bu yüzden player süresini göstermiyor.

    http://www.hasangul.com/flvtest/1.html bu flv dosyanız, metalarını görebilirsiniz

    http://www.hasangul.com/flvtest/2.html bu da olması gereken yani içinde duration bulunan.

    ffmpeg yerine mencoder ile çevirin videolarınızı. scriptin conversion dosyasını koyarsanız sizin için düzenleyebilirim. (mencoder versiyonunuzu da söylemeniz lazım)
  • 18-12-2009, 19:26:50
    #6
    Üyeliği durduruldu
    Öncelikle ilginiz için çok teşekkür ederim.
    Mencoder 20071007 sürümü (son sürümü). Ffmpeg ile daha hızlı çevriliyor diye biliyordum. Mencoder ile nasıl çeviriyoruz.
    Script :

    <?php

    #$extension = "ffmpeg";
    #$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
    #$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;

    // load extension
    #if (!extension_loaded($extension)) {
    # dl($extension_soname) or die("yüklenemedi
    #$extension_fullname\n");
    #}






    $ilkdosya = "Funda_Arar_Kirik_Dusler.mp4";
    $yenidosya = "y/kirik_dusler.flv";
    $ffmpegPath = "/usr/bin/ffmpeg";
    $flvtool2Path = "/usr/bin/flvtool2";

    #çevireceğimiz dosyanın süre bilgisi

    $video = new ffmpeg_movie("$ilkdosya",false);
    $sure = $video->getDuration();
    echo "$sure <br>";
    $sure=ceil($sure);
    echo "$sure <br>";

    $sure=date("H:i:s",-93600 + $sure);
    echo "$sure";





    $ffmpegObj = new ffmpeg_movie($ilkdosya);

    $Genislik = makeMultipleTwo($ffmpegObj->getFrameWidth());
    $Yukseklik = makeMultipleTwo($ffmpegObj->getFrameHeight());
    $srcFPS = $ffmpegObj->getFrameRate();
    $srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
    $srcAR = $ffmpegObj->getAudioSampleRate();
    // Call our convert using exec()


    exec($ffmpegPath . " -i " . $ilkdosya . " -ar " . $srcAR . " -ab " . $srcAB . " -f flv -s " . $Genislik . "x" . $Yukseklik . " " . $yenidosya . " | " . $flvtool2Path . " -U -duration:$sure " . $yenidosya);


    function makeMultipleTwo ($value)
    {
    $sType = gettype($value/2);
    if($sType == "integer")
    {
    return $value;
    } else {
    return ($value-1);
    }
    }


    ?>
  • 18-12-2009, 19:39:44
    #7
    Aşağıdaki gibi deneyin, çalışırsa değişkenlerini ayarlayalım.

    <?php
    
    #$extension = "ffmpeg";
    #$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
    #$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
    
    // load extension
    #if (!extension_loaded($extension)) {
    # dl($extension_soname) or die("yüklenemedi
    #$extension_fullname\n");
    #}
    
    
    //dosyaların serverdaki tam yolunu yazmanız gerekiyor.
    $ilkdosya = "/home/domain/public_html/media/Funda_Arar_Kirik_Dusler.mp4";
    $yenidosya = "/home/domain/public_html/media/yeni/kirik_dusler.flv";
    //$ffmpegPath = "/usr/bin/mencoder";
    $MencoderPath = "/usr/bin/mencoder";
    $flvtool2Path = "/usr/bin/flvtool2";
    
    #çevireceğimiz dosyanın süre bilgisi
    /*
    $video = new ffmpeg_movie("$ilkdosya",false);
    $sure = $video->getDuration();
    echo "$sure <br>";
    $sure=ceil($sure);
    echo "$sure <br>";
    
    $sure=date("H:i:s",-93600 + $sure);
    echo "$sure";
    
    $ffmpegObj = new ffmpeg_movie($ilkdosya);
    
    $Genislik = makeMultipleTwo($ffmpegObj->getFrameWidth());
    $Yukseklik = makeMultipleTwo($ffmpegObj->getFrameHeight());
    $srcFPS = $ffmpegObj->getFrameRate();
    $srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
    $srcAR = $ffmpegObj->getAudioSampleRate();
    // Call our convert using exec()
    */
    
    exec($MencoderPath $ilkdosya . " -o " . $yenidosya . " -of lavf -oac mp3lame -lameopts abr:br=96 -ovc lavc -lavcopts vcodec=flv:vbitrate=900:mbd=2:mv0:trell:v4mv:keyint=10:cbp:last_pred=3 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames scale=320:240 -srate 22050");
    
    
    function makeMultipleTwo ($value)
    {
    $sType = gettype($value/2);
    if($sType == "integer")
    {
    return $value;
    } else {
    return ($value-1);
    }
    }
    
    
    ?>
  • 18-12-2009, 20:18:18
    #8
    Üyeliği durduruldu
    script çalışmıyor sanırım bir yerinde hata var bulamadım henüz.
  • 18-12-2009, 20:50:27
    #9
    Üyeliği durduruldu
    exec($MencoderPath ". $ilkdosya . " -o " . $yenidosya . " -of lavf -oac mp3lame -lameopts abr:br=96 -ovc lavc -lavcopts vcodec=flv:vbitrate=900:mbd=2:mv0:trell:v4mv:keyin t=10:cbp:last_pred=3 -lavfopts i_certify_that_my_video_stream_does_not_use_b_fram es scale=320:240 -srate 22050");


    burada bir sorun var ama bulamadım.