2010-06-25 7 views
0

Lorsque j'écoute une vidéo (.mov) à travers mon iPhone, elle affiche verticalement, ce qui est juste. Mais après avoir converti le .mov en .flv (en utilisant ffmpeg), il affiche horizontalement.Lors de la conversion .mov en .flv vidéo joue horizontalement

Mon code:

function convert_flv($vidtime,$infile, $outfile, $w = 0, $h = 0, $extra_infile = '', $extra_outfile = '') { 
    $parms = ''; 
    if($w == 0 && $h == 0) { 
     //$parms .= '-sameq '; 
    } else { 
     $parms = '-s {$w}x{$h} '; 
    } 

    if($vidtime==60) { 
     $cmd = ffmpeg($infile, $outfile, $parms.' '.$extra_infile, '-t 00:01:00 -ar 22050 -r 15 -f flv '.$extra_outfile); 
    } else { 
     $cmd = ffmpeg($infile, $outfile, $parms.' '.$extra_infile, '-t 00:04:00 -ar 22050 -r 15 -f flv '.$extra_outfile); 
    } 

    print_r($cmd); 
    return $cmd; 
} 

Répondre

0

L'orientation est un champ de méta-données dans le fichier vidéo - le fichier réel n'est pas enregistré dans une orientation autre. Vous devez appliquer une transformation dans ffmpeg pour faire pivoter la vidéo.

+0

Bonjour, Merci pour une réponse rapide, comment puis-je appliquer transform en ffmpeg? – user291247

2

L'iPhone stocke les informations d'orientation dans les métadonnées .mov ignorées par ffmpeg, ce qui entraîne une rotation de la sortie. L'analyse correcte des métadonnées est un problème.

Si vous enregistrez des films dans une orientation cohérente, vous pouvez les faire pivoter en ajoutant -vf "transpose=1" à votre commande ffmpeg. Docs for transpose.

Questions connexes