Changeset 67719 in spip-zone


Ignore:
Timestamp:
Nov 14, 2012, 9:55:51 AM (7 years ago)
Author:
kent1@…
Message:

Ne pas utiliser map_metadatas qui ne fonctionne pas avec FFMpeg 1.0 de la même manière et qui n'a que très peu d'intérêt pour l'instant

Améliorer la récupération d'infos qui ne marchaient pas avec FFMpeg 1.0

Location:
_plugins_/spipmotion/trunk/inc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipmotion/trunk/inc/spipmotion_encodage.php

    r66945 r67719  
    486486                                                $infos_sup_normal = $preset_quality ? "-preset $preset_quality $infos_sup_normal" : $infos_sup_normal;
    487487                                        }
    488                                         $metadatas = "-map_metadata 0:0";
     488                                        $metadatas = "";
     489                                        //$metadatas = "-map_metadata 0:0";
    489490                                        $metadatas_supp = '';
    490491                                        $metas_orig = @unserialize($source['metas']);
     
    510511                                        $rotation = "-vf transpose=1";
    511512                                }
    512                                 $infos_sup_normal .= " -map_metadata 0:0";
     513                                //$infos_sup_normal .= " -map_metadata 0:0";
    513514                                if($infos_sup_normal){
    514515                                        $infos_sup_normal = "--params_supp \"$infos_sup_normal\"";
  • _plugins_/spipmotion/trunk/inc/spipmotion_ffmpeg_infos.php

    r62717 r67719  
    4747                spimotion_write($chemin_fichier,"==VERSION==\n");
    4848                exec($spipmotion_sh.' --info "-version" --log '.$chemin_fichier,$retour,$bool);
    49                 spimotion_write($chemin_fichier,"\n==FORMATS==\n");
    50                 exec($spipmotion_sh.' --info "-formats" --log '.$chemin_fichier,$retour,$bool);
    51                 spimotion_write($chemin_fichier,"\n==CODECS==\n");
    52                 exec($spipmotion_sh.' --info "-codecs" --log '.$chemin_fichier,$retour,$bool);
     49                spimotion_write($chemin_fichier.'_formats',"\n==FORMATS==\n");
     50                exec($spipmotion_sh.' --info "-formats" --log '.$chemin_fichier.'_formats',$retour,$bool);
     51                spimotion_write($chemin_fichier.'_codecs',"\n==CODECS==\n");
     52                exec($spipmotion_sh.' --info "-codecs" --log '.$chemin_fichier.'_codecs',$retour,$bool);
    5353                spimotion_write($chemin_fichier,"\n==BSFS==\n");
    5454                exec($spipmotion_sh.' --info "-bsfs" --log '.$chemin_fichier,$retour,$bool);
     
    6262               
    6363                if (lire_fichier($chemin_fichier, $contenu)){
     64                        $contenu=trim($contenu);
    6465                        $data = array();
    6566                        $look_ups = array(
    6667                                'version' => 'ffmpeg version',
    6768                                'configuration'=>'configuration:',
    68                                 'formats'=>'==FORMATS==',
    69                                 'codecs'=>'==CODECS==',
    7069                                'bitstream_filters'=>'==BSFS==',
    7170                                'avfilters' => 'Filters:',
     
    8483                                }
    8584                        }
    86 
    87                         preg_match('/'.implode('(.*)', $pregs).'/s', $contenu, $matches);
    88                        
     85                        spip_log($indexs,'test');
     86                        spip_log($pregs,'test');
     87                        spip_log(implode('(.*)', $pregs),'test');
     88                        $result = preg_match('/'.implode('(.*)', $pregs).'/s', $contenu, $matches);
     89
    8990                        /**
    9091                         * Récupération des informations de version
     
    9495
    9596                        $version = trim($matches[$indexs['version']]);
    96                        
    9797                        preg_match('/([a-zA-Z0-9\-]+[0-9\.]+).* on (.*) with gcc (.*)/s', $version, $versions);
    9898                        $data['spipmotion_compiler']['ffmpeg_version'] = $versions[1];
     
    100100                        $data['spipmotion_compiler']['build_date'] = $versions[2];
    101101                        $data['spipmotion_compiler']['build_date_timestamp'] = strtotime($versions[2]);
     102                        spip_log($data['spipmotion_compiler'],'test');
    102103
    103104                        /**
     
    116117                         * Pour chaque format reconnu on retourne un array avec
    117118                         */
    118                         preg_match_all('/ (DE|D|E) (.*) {1,} (.*)/', trim($matches[$indexs['formats']]), $formats);
    119                         $data['spipmotion_formats'] = array();
    120                         for($i=0, $a=count($formats[0]); $i<$a; $i++){
    121                                 $data['spipmotion_formats'][strtolower(trim($formats[2][$i]))] = array(
    122                                         'encode'        => $formats[1][$i] == 'DE' || $formats[1][$i] == 'E',
    123                                         'decode'        => $formats[1][$i] == 'DE' || $formats[1][$i] == 'D',
    124                                         'fullname'      => $formats[3][$i]
    125                                 );
    126                         }
    127                         ecrire_meta('spipmotion_formats',serialize($data['spipmotion_formats']),'','spipmotion_metas');
     119                        if (lire_fichier($chemin_fichier.'_formats', $contenu_formats)){
     120                                preg_match_all('/ (DE|D|E) (.*) {1,} (.*)/', $contenu_formats, $formats);
     121                                $data['spipmotion_formats'] = array();
     122                                for($i=0, $a=count($formats[0]); $i<$a; $i++){
     123                                        $data['spipmotion_formats'][strtolower(trim($formats[2][$i]))] = array(
     124                                                'encode'        => $formats[1][$i] == 'DE' || $formats[1][$i] == 'E',
     125                                                'decode'        => $formats[1][$i] == 'DE' || $formats[1][$i] == 'D',
     126                                                'fullname'      => $formats[3][$i]
     127                                        );
     128                                }
     129                                ecrire_meta('spipmotion_formats',serialize($data['spipmotion_formats']),'','spipmotion_metas');
     130                        }
    128131
    129132                        /**
    130133                         * Récupération des codecs disponibles
    131134                         */
    132                         preg_match_all('/ (D| )(E| )(V|A|S)(S| )(D| )(T| ) (.*) {1,} (.*)/', trim($matches[$indexs['codecs']]), $codecs);
    133                         $data['spipmotion_codecs'] = array();
    134                         $data['spipmotion_codecs_audio_decode'] = array();
    135                         $data['spipmotion_codecs_video_decode'] = array();
    136                         $data['spipmotion_codecs_audio_encode'] = array();
    137                         $data['spipmotion_codecs_video_encode'] = array();
    138                         for($i=0, $a=count($codecs[0]); $i<$a; $i++){
    139                                 $data['spipmotion_codecs'][strtolower(trim($codecs[7][$i]))] = array(
    140                                         'decode'        => $codecs[1][$i] == 'D',
    141                                         'encode'        => $codecs[2][$i] == 'E',
    142                                         'type'  => $codecs[3][$i],
    143                                         'draw_horiz_band'       => $codecs[4][$i] == 'S',
    144                                         'direct_rendering'      => $codecs[5][$i] == 'D',
    145                                         'weird_frame_truncation' => $codecs[6][$i] == 'T',
    146                                         'fullname' => $codecs[8][$i]
    147                                 );
    148                                 if(($codecs[1][$i] == 'D') && ($codecs[3][$i] == 'A'))
    149                                         $data['spipmotion_codecs_audio_decode'][] = trim($codecs[7][$i]);
    150                                 if(($codecs[1][$i] == 'D') && ($codecs[3][$i] == 'V'))
    151                                         $data['spipmotion_codecs_video_decode'][] = trim($codecs[7][$i]);
    152                                 if(($codecs[2][$i] == 'E') && ($codecs[3][$i] == 'A'))
    153                                         $data['spipmotion_codecs_audio_encode'][] = trim($codecs[7][$i]);
    154                                 if(($codecs[2][$i] == 'E') && ($codecs[3][$i] == 'V'))
    155                                         $data['spipmotion_codecs_video_encode'][] = trim($codecs[7][$i]);
    156                         }
    157                         ecrire_meta('spipmotion_codecs',serialize($data['spipmotion_codecs']),'','spipmotion_metas');
    158                         ecrire_meta('spipmotion_codecs_audio_decode',serialize($data['spipmotion_codecs_audio_decode']),'','spipmotion_metas');
    159                         ecrire_meta('spipmotion_codecs_video_decode',serialize($data['spipmotion_codecs_video_decode']),'','spipmotion_metas');
    160                         ecrire_meta('spipmotion_codecs_audio_encode',serialize($data['spipmotion_codecs_audio_encode']),'','spipmotion_metas');
    161                         ecrire_meta('spipmotion_codecs_video_encode',serialize($data['spipmotion_codecs_video_encode']),'','spipmotion_metas');
     135                        if (lire_fichier($chemin_fichier.'_codecs', $contenu_codecs)){
     136                                spip_log($contenu_codecs,'test');
     137                                preg_match_all('/ (D| |\.)(E| |\.)(V|A|S|\.)(S| |\.|I)(D|L| |\.)(T|S| ) (.*) {1,} (.*)/', $contenu_codecs, $codecs);
     138                                $data['spipmotion_codecs'] = array();
     139                                $data['spipmotion_codecs_audio_decode'] = array();
     140                                $data['spipmotion_codecs_video_decode'] = array();
     141                                $data['spipmotion_codecs_audio_encode'] = array();
     142                                $data['spipmotion_codecs_video_encode'] = array();
     143                                for($i=0, $a=count($codecs[0]); $i<$a; $i++){
     144                                        $data['spipmotion_codecs'][strtolower(trim($codecs[7][$i]))] = array(
     145                                                'decode'        => $codecs[1][$i] == 'D',
     146                                                'encode'        => $codecs[2][$i] == 'E',
     147                                                'type'  => $codecs[3][$i],
     148                                                'draw_horiz_band'       => $codecs[4][$i] == 'S',
     149                                                'direct_rendering'      => $codecs[5][$i] == 'D',
     150                                                'weird_frame_truncation' => $codecs[6][$i] == 'T',
     151                                                'fullname' => $codecs[8][$i]
     152                                        );
     153                                        spip_log($data['spipmotion_codecs'][strtolower(trim($codecs[7][$i]))],'test');
     154                                        if(($codecs[1][$i] == 'D') && ($codecs[3][$i] == 'A'))
     155                                                $data['spipmotion_codecs_audio_decode'][] = trim($codecs[7][$i]);
     156                                        if(($codecs[1][$i] == 'D') && ($codecs[3][$i] == 'V'))
     157                                                $data['spipmotion_codecs_video_decode'][] = trim($codecs[7][$i]);
     158                                        if(($codecs[2][$i] == 'E') && ($codecs[3][$i] == 'A'))
     159                                                $data['spipmotion_codecs_audio_encode'][] = trim($codecs[7][$i]);
     160                                        if(($codecs[2][$i] == 'E') && ($codecs[3][$i] == 'V'))
     161                                                $data['spipmotion_codecs_video_encode'][] = trim($codecs[7][$i]);
     162                                }
     163                                ecrire_meta('spipmotion_codecs',serialize($data['spipmotion_codecs']),'','spipmotion_metas');
     164                                ecrire_meta('spipmotion_codecs_audio_decode',serialize($data['spipmotion_codecs_audio_decode']),'','spipmotion_metas');
     165                                ecrire_meta('spipmotion_codecs_video_decode',serialize($data['spipmotion_codecs_video_decode']),'','spipmotion_metas');
     166                                ecrire_meta('spipmotion_codecs_audio_encode',serialize($data['spipmotion_codecs_audio_encode']),'','spipmotion_metas');
     167                                ecrire_meta('spipmotion_codecs_video_encode',serialize($data['spipmotion_codecs_video_encode']),'','spipmotion_metas');
     168                        }
    162169
    163170                        /**
Note: See TracChangeset for help on using the changeset viewer.