Changeset 47793 in spip-zone


Ignore:
Timestamp:
May 14, 2011, 1:36:05 PM (10 years ago)
Author:
kent1@…
Message:

Gérer les fichiers sources avec plus de deux canaux audios. Dans ce cas là on ne downsample pas car ffmpeg ne sait pas gérer, on garde l'ensemble des canaux ... on encode le son en 128kbps et aac obligatoirement

Location:
_plugins_/spipmotion
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipmotion/formulaires/spipmotion_encodage_video.html

    r44901 r47793  
    7070                #SET{acodecs_possibles,#ARRAY|push{libmp3lame}|push{libfaac}|push{libspeex}}
    7171                #SET{vcodecs_possibles,#ARRAY|push{flv}|push{libx264}}
    72                 #SET{presets_qualite,#ARRAY|push{main}|push{medium}|push{placebo}|push{ultrafast}|push{superfast}|push{faster}|push{fast}|push{slow}|push{slower}|push{veryslow}}
     72                #SET{presets_qualite,#ARRAY|push{medium}|push{placebo}|push{ultrafast}|push{superfast}|push{faster}|push{fast}|push{slow}|push{slower}|push{veryslow}}
    7373                #SET{2_passes,oui}
    7474        </BOUCLE_flv>
     
    7777                #SET{vcodecs_possibles,#ARRAY|push{libx264}|push{libxvid}|push{mpeg4}}
    7878                #SET{formats_possibles,#ARRAY|push{ipod}|push{psp}|push{mp4}|push{m4v}}
    79                 #SET{presets_qualite,#ARRAY|push{main}|push{medium}|push{placebo}|push{ultrafast}|push{superfast}|push{faster}|push{fast}|push{slow}|push{slower}|push{veryslow}}
     79                #SET{presets_qualite,#ARRAY|push{medium}|push{placebo}|push{ultrafast}|push{superfast}|push{faster}|push{fast}|push{slow}|push{slower}|push{veryslow}}
    8080                #SET{2_passes,oui}
    8181        </BOUCLE_mp4>
  • _plugins_/spipmotion/inc/encodage.php

    r44900 r47793  
    7676                return;
    7777
     78        $ffmpeg_version = lire_config('spipmotion_compiler/ffmpeg_version','0.6');
    7879        $rep_dest = sous_repertoire(_DIR_VAR, 'cache-spipmotion');
    7980       
     
    196197                                unset($audiosamplerates[3]);
    197198                        }
    198                         if(!in_array($source['audiosamplerate'],$audiosamplerates)){
     199                        /**
     200                         * ffmpeg ne peut resampler
     201                         * On force le codec audio à aac s'il était à libmp3lame
     202                         */
     203                        if(($source['audiochannels'] > 2) && (lire_config("spipmotion/encodeur_$extension_attente",'') != 'ffmpeg2theora')){
     204                                $samplerate = $source['audiosamplerate'];
     205                                spip_log($acodec,'spipmotion');
     206                                if($acodec == '--acodec libmp3lame'){
     207                                        $acodec = '--acodec libfaac';
     208                                        $audiobitrate_ffmpeg = $audiobitrate_ffmpeg2theora = "--audiobitrate 128";
     209                                }
     210                        }else if(!in_array($source['audiosamplerate'],$audiosamplerates)){
    199211                                $audiosamplerate_final = min($audiosamplerates);
    200212                                foreach($audiosamplerates as $samplerate){
     
    208220                        }
    209221                }else{
    210                         $samplerate = lire_config("spipmotion/frequence_audio_$extension_attente","22050");
     222                        if(($source['audiochannels'] > 2) && (lire_config("spipmotion/encodeur_$extension_attente",'') != 'ffmpeg2theora')){
     223                                $samplerate = $source['audiosamplerate'];
     224                                if($acodec == '--acodec libmp3lame'){
     225                                        $acodec = '--acodec libfaac';
     226                                        $audiobitrate_ffmpeg = $audiobitrate_ffmpeg2theora = "--audiobitrate 128";
     227                                }
     228                        }else{
     229                                $samplerate = lire_config("spipmotion/frequence_audio_$extension_attente","22050");
     230                        }
    211231                }
    212232                $audiofreq = "--audiofreq ".$samplerate;
     
    217237                 * le format choisi est vorbis (l'encodeur vorbis de ffmpeg ne gère pas le mono)
    218238                 */
    219                 if(($source['audiochannels'] > 2)
    220                         OR (in_array($extension_attente,array('ogg','ogv','oga'))
     239                if(in_array($extension_attente,array('ogg','ogv','oga')
    221240                                && ($source['audiochannels'] < 2)
    222241                                && (lire_config("spipmotion/encodeur_$extension_attente",'') != 'ffmpeg2theora'))){
     
    338357                 */
    339358                if($vcodec == '--vcodec libx264'){
    340                         $preset_quality = lire_config("spipmotion/vpreset_$extension_attente",'hq');
     359                        $preset_quality = lire_config("spipmotion/vpreset_$extension_attente",'slow');
    341360                        if(in_array('--enable-pthreads',lire_config('spipmotion_compiler/configuration'))){
    342361                                $infos_sup_normal .= "-threads 0";
     
    378397                        if($passes == 2)
    379398                                $deux_passes = '--two-pass';
    380                         //$encodage = "ffmpeg2theora $chemin -v  $bitrate_ffmpeg2theora --soft-target $audiobitrate_ffmpeg2theora -H $samplerate -c $audiochannels --max_size ".$width_finale."x".$height_finale." $deux_passes -F $fps_num --optimize --nice 9 -o $fichier_temp &> $fichier_log";
    381399                        $encodage = $spipmotion_sh." --force true $video_size --e $chemin --videoquality ".lire_config('spipmotion/qualite_video_ffmpeg2theora_'.$extension_attente,7)." $fps $bitrate $audiofreq $audiobitrate_ffmpeg2theora $audiochannels_ffmpeg2theora --s $fichier_temp $deux_passes --log $fichier_log --encodeur ffmpeg2theora";
    382400                        spip_log($encodage,'spipmotion');
     
    387405                                spip_log('on encode en 2 passes','spipmotion');
    388406                                spip_log('Premiere passe','spipmotion');
    389                                 $preset_1 = $preset_quality ? '-vpre '.$preset_quality.'_firstpass' : '';
     407                                if ($ffmpeg_version < '0.7'){
     408                                        $preset_1 = $preset_quality ? '-vpre '.$preset_quality.'_firstpass' : '';
     409                                }else{
     410                                        $preset_1 = $preset_quality ? '-preset '.$preset_quality : '';
     411                                }
    390412                                $infos_sup_normal_1 = "--params_supp \"-an $preset_1 -passlogfile $pass_log_file $infos_sup_normal\"";
    391413                                $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";
     
    399421                                if($retour_int_1 == 0){
    400422                                        spip_log('Seconde passe','spipmotion');
    401                                         $infos_sup_normal = $preset_quality ? "-vpre $preset_quality $infos_sup_normal" : $infos_sup_normal;
    402                                         $infos_sup_normal_2 = "--params_supp \"-passlogfile $pass_log_file $infos_sup_normal \"";
    403                                         $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-pass2.log";
     423                                        if ($ffmpeg_version < '0.7'){
     424                                                $infos_sup_normal = $preset_quality ? "-vpre $preset_quality $infos_sup_normal" : $infos_sup_normal;
     425                                        }else{
     426                                                $infos_sup_normal = $preset_quality ? "-preset $preset_quality $infos_sup_normal" : $infos_sup_normal;
     427                                        }
     428                                        $metadatas = "-map_metadata $fichier_temp:$chemin";
     429                                        $infos_sup_normal_2 = "--params_supp \"-passlogfile $pass_log_file $infos_sup_normal $metadatas\"";
     430                                        $fichier_log = "$fichier_log-pass2.log";
     431                                        $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";
    404432                                        spip_log($encodage,'spipmotion');
    405433                                        $lancement_encodage = exec($encodage,$retour,$retour_int);
     
    410438                        }else{
    411439                                spip_log('on encode en 1 passe','spipmotion');
    412                                 $infos_sup_normal = $preset_quality ? "-vpre $preset_quality $infos_sup_normal":'';
     440                                if ($ffmpeg_version < '0.7'){
     441                                        $infos_sup_normal = $preset_quality ? "-vpre $preset_quality $infos_sup_normal":'';
     442                                }else{
     443                                        $infos_sup_normal = $preset_quality ? "-preset $preset_quality $infos_sup_normal":'';
     444                                }
     445                                $infos_sup_normal .= " -map_metadata $fichier_temp:$chemin";
    413446                                if($infos_sup_normal){
    414447                                        $infos_sup_normal = "--params_supp \"$infos_sup_normal\"";
  • _plugins_/spipmotion/inc/ffmpeg_infos.php

    r43792 r47793  
    6161                        $data = array();
    6262                        $look_ups = array(
    63                                 'version' => 'FFmpeg version',
     63                                'version' => 'ffmpeg version',
    6464                                'configuration'=>' configuration: ',
    6565                                'formats'=>'File formats:',
  • _plugins_/spipmotion/inc/spipmotion_mediainfo.php

    r47762 r47793  
    2727                                $infos['titre'] = $info[0]['Title'][0] ? $info[0]['Title'][0] : $info[0]['Movie_name'][0];
    2828                                $infos['descriptif'] = $info[0]['Description'][0] ? $info[0]['Description'][0] : $info[0]['desc'][0];
    29                                 $infos['credits'] = $info[0]['Copyright'][0];
     29                                $infos['credits'] .= $info[0]['Performer'][0]? $info[0]['Performer'][0].($info[0]['Copyright'][0] ? ' - '.$info[0]['Copyright'][0] : '') : $info[0]['Copyright'][0] ;
    3030                                $infos['duree'] = $info[0]['Duration'][0] / 1000;
    3131                                $infos['bitrate'] = $info[0]['Overall_bit_rate'][0];
Note: See TracChangeset for help on using the changeset viewer.