Changeset 47795 in spip-zone


Ignore:
Timestamp:
May 14, 2011, 3:39:13 PM (8 years ago)
Author:
kent1@…
Message:

On récupère le degré de rotation (pour les videos d'iphone par exemple) que l'on met en base ... et on l'utilise pour tourner les encodages ...

ffmpeg2theora ne peut tourner les videos donc dans ces cas là on force l'usage de ffmpeg

Location:
_plugins_/spipmotion
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipmotion/base/spipmotion.php

    r47762 r47795  
    4949        $tables_principales['spip_documents']['field']['audiocodec'] = "VARCHAR(255) DEFAULT '' NOT NULL";
    5050        $tables_principales['spip_documents']['field']['audiochannels'] = "INTEGER";
     51        $tables_principales['spip_documents']['field']['rotation'] = "INTEGER";
    5152        $tables_principales['spip_documents']['field']['id_orig'] = "BIGINT(21) NOT NULL";
    5253        $tables_principales['spip_documents']['field']['metas'] = "TEXT DEFAULT '' NOT NULL";
  • _plugins_/spipmotion/base/spipmotion_upgrade.php

    r47762 r47795  
    185185                        maj_tables('spip_documents');
    186186                        ecrire_meta($nom_meta_base_version,$current_version='0.7.6');
     187                }
     188                if (version_compare($current_version,'0.7.7','<')){
     189                        maj_tables('spip_documents');
     190                        ecrire_meta($nom_meta_base_version,$current_version='0.7.7');
    187191                }
    188192                /**
  • _plugins_/spipmotion/inc/encodage.php

    r47793 r47795  
    7676                return;
    7777
     78        $encodeur = lire_config("spipmotion/encodeur_$extension_attente",'');
    7879        $ffmpeg_version = lire_config('spipmotion_compiler/ffmpeg_version','0.6');
    7980        $rep_dest = sous_repertoire(_DIR_VAR, 'cache-spipmotion');
    8081       
     82        if($source['rotation'] == '90'){
     83                $encodeur = 'ffmpeg';
     84        }
    8185        /**
    8286         * On change le statut d'encodage à en_cours pour
     
    146150         */
    147151        if($source['hasaudio'] == 'oui'){
    148                 $texte .= lire_config("spipmotion/acodec_$extension_attente") ? "acodec=".lire_config("spipmotion/acodec_$extension_attente")."\n":'';
    149152                $acodec = lire_config("spipmotion/acodec_$extension_attente") ? "--acodec ".lire_config("spipmotion/acodec_$extension_attente") :'';
    150 
     153                if(($encodeur == "ffmpeg") && ($acodec == "--acodec vorbis")){
     154                        $acodec = '--acodec libvorbis';
     155                }
    151156                if(in_array(lire_config("spipmotion/acodec_$extension_attente",''),array('vorbis','libvorbis'))){
    152157                        $qualite = lire_config("spipmotion/qualite_audio_$extension_attente",'4');
     
    201206                         * On force le codec audio à aac s'il était à libmp3lame
    202207                         */
    203                         if(($source['audiochannels'] > 2) && (lire_config("spipmotion/encodeur_$extension_attente",'') != 'ffmpeg2theora')){
     208                        if(($source['audiochannels'] > 2) && ($encodeur != 'ffmpeg2theora')){
    204209                                $samplerate = $source['audiosamplerate'];
    205210                                spip_log($acodec,'spipmotion');
     
    220225                        }
    221226                }else{
    222                         if(($source['audiochannels'] > 2) && (lire_config("spipmotion/encodeur_$extension_attente",'') != 'ffmpeg2theora')){
     227                        if(($source['audiochannels'] > 2) && ($encodeur != 'ffmpeg2theora')){
    223228                                $samplerate = $source['audiosamplerate'];
    224229                                if($acodec == '--acodec libmp3lame'){
     
    239244                if(in_array($extension_attente,array('ogg','ogv','oga')
    240245                                && ($source['audiochannels'] < 2)
    241                                 && (lire_config("spipmotion/encodeur_$extension_attente",'') != 'ffmpeg2theora'))){
     246                                && ($encodeur != 'ffmpeg2theora'))){
    242247                        spip_log('on passe en deux canaux','spipmotion');
    243248                        $audiochannels = 2;
     
    338343                 */
    339344                if(intval($source['videobitrate']) && (intval($source['videobitrate']) < (lire_config("spipmotion/bitrate_$extension_attente","448"))*1000)){
    340                         if(lire_config("spipmotion/encodeur_$extension_attente",'') == 'ffmpeg2theora'){
     345                        if($encodeur == 'ffmpeg2theora'){
    341346                                $vbitrate = $source['videobitrate'];
    342347                        }else{
     
    394399                $pass_log_file = $dossier.$query.'-pass';
    395400               
    396                 if((lire_config("spipmotion/encodeur_$extension_attente",'') == 'ffmpeg2theora') && (lire_config('spipmotion_ffmpeg2theora/version') > 0)){
     401                if(($encodeur == 'ffmpeg2theora') && (lire_config('spipmotion_ffmpeg2theora/version') > 0)){
    397402                        if($passes == 2)
    398403                                $deux_passes = '--two-pass';
     
    402407                        spip_log($retour_int,'spipmotion');
    403408                }else{
    404                         if(($passes == "2") && ((($vcodec == '--vcodec libx264') && ($preset_quality != 'hq')) OR ($vcodec == '--vcodec flv') OR ($extension_attente == 'webm'))){
     409                        if(($passes == "2") && ((($vcodec == '--vcodec libx264') && ($preset_quality != 'hq')) OR ($vcodec == '--vcodec flv') OR ($vcodec == '--vcodec libtheora') OR ($extension_attente == 'webm'))){
    405410                                spip_log('on encode en 2 passes','spipmotion');
    406411                                spip_log('Premiere passe','spipmotion');
     
    410415                                        $preset_1 = $preset_quality ? '-preset '.$preset_quality : '';
    411416                                }
    412                                 $infos_sup_normal_1 = "--params_supp \"-an $preset_1 -passlogfile $pass_log_file $infos_sup_normal\"";
     417                                if($source['rotation'] == '90'){
     418                                        $rotation = "-vf transpose=1";
     419                                }
     420                                $infos_sup_normal_1 = "--params_supp \"-an $preset_1 -passlogfile $pass_log_file $infos_sup_normal $rotation\"";
    413421                                $encodage_1 = $spipmotion_sh." --force true --pass 1 $video_size --e $chemin $vcodec $fps $bitrate $infos_sup_normal_1 --s $fichier_temp --p ".lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg")." --log $fichier_log";
    414422                                spip_log($encodage_1,'spipmotion');
     
    427435                                        }
    428436                                        $metadatas = "-map_metadata $fichier_temp:$chemin";
    429                                         $infos_sup_normal_2 = "--params_supp \"-passlogfile $pass_log_file $infos_sup_normal $metadatas\"";
     437                                        $infos_sup_normal_2 = "--params_supp \"-passlogfile $pass_log_file $infos_sup_normal $rotation $metadatas\"";
    430438                                        $fichier_log = "$fichier_log-pass2.log";
    431439                                        $encodage = $spipmotion_sh." --force true --pass 2 $audiofreq $audiobitrate_ffmpeg $audiochannels_ffmpeg $video_size --e $chemin $acodec $vcodec $fps $bitrate $infos_sup_normal_2 --s $fichier_temp --p ".lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg")." --log $fichier_log";
     
    443451                                        $infos_sup_normal = $preset_quality ? "-preset $preset_quality $infos_sup_normal":'';
    444452                                }
    445                                 $infos_sup_normal .= " -map_metadata $fichier_temp:$chemin";
     453                                if($source['rotation'] == '90'){
     454                                        $rotation = "-vf transpose=1";
     455                                }
     456                                $infos_sup_normal .= " -map_metadata $fichier_temp:$chemin $rotation";
    446457                                if($infos_sup_normal){
    447458                                        $infos_sup_normal = "--params_supp \"$infos_sup_normal\"";
  • _plugins_/spipmotion/inc/spipmotion_mediainfo.php

    r47793 r47795  
    3838                                $infos['framerate'] = $info[0]['Frame_rate'][0];
    3939                                $infos['framecount'] = $info[0]['Frame_count'][0];
     40                                $infos['rotation'] = intval($info[0]['Rotation'][0]);
    4041                                $infos['hasvideo'] = 'oui';
    4142                        }
  • _plugins_/spipmotion/plugin.xml

    r47762 r47795  
    44        <auteur>kent1 (kent1@arscenic.info)</auteur>
    55        <licence>GNU/GPL v3</licence>
    6         <version>0.7.2</version>
    7         <version_base>0.7.6</version_base>
     6        <version>0.7.7</version>
     7        <version_base>0.7.7</version_base>
    88        <etat>test</etat>
    99        <description>
Note: See TracChangeset for help on using the changeset viewer.