#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D ' U N E   A N I M A T I O N   ' $MP4 '  :                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Nota sur les conversions '$MP4' et '$MPEG' :                                                                 #
#                                                                                                                                     #
#                     Il existe pour ce faire deux modules                                                                            #
#                   qui sont relativement incompatibles :                                                                             #
#                                                                                                                                     #
#                                                                                                                                     #
#                                       SOLUTION CONSEILLEE :                                                                         #
#                                                                                                                                     #
#                                                 $xiirs/.MOBI.13.1.$U                                                                #
#                                                                               Genere du '$MP4' et fonctionne sur '$LACT19', sur     #
#                                                                               '$LACT1A' et sur '$LACT1B'. Le fichier '$MP4' est     #
#                                                                               exploitable sur ces machines via '$PLAYER_'.          #
#                                                                                                                                     #
#                                                                                                                                     #
#                                       SOLUTION DECONSEILLEE :                                                                       #
#                                                                                                                                     #
#                                                 $xivP_d06_f2/.TUR2.1.11.$U                                                          #
#                                                                               Genere du '$MPEG' et fonctionne sur '$LACT19' et      #
#                                                                               sur '$LACT1A'. Mais, le fichier '$MPEG' n'est pas     #
#                                                                               exploitable sur '$LACT19'...                          #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirs/.MOBI.13.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20150204134154).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  set                 NoError_DKVP=$EXIST
$Z                  source              $Fdisk_video_P
$Z                  unset               NoError_DKVP
$Z                                      # Introduit le 20200319104227 pour definir '$RVB_DKVP'...                                     #

$Z                  SETParam            Premiere                      1

$Z                  SETParam            Derniere                      128

$Z                  SETParam            _____InverserMPEG             $NEXIST
$Z                                      # Introduit le 20200318135416 pour faciliter le remplacement de                               #
$Z                                      # 'v $xivP_d06_f2/.TUR2.1.11.$U' par 'v $xiirs/.MOBI.13.1.$U'...                              #

$Z                  SETParam            _____PaletteMPEG              $RVB_DKVP
$Z                                      # Introduit le 20200318135416 pour faciliter le remplacement de                               #
$Z                                      # 'v $xivP_d06_f2/.TUR2.1.11.$U' par 'v $xiirs/.MOBI.13.1.$U'...                              #

$Z                  SETParam            _____LRepetitions             "$K_VIDE"
$Z                                      # Introduit le 20200319100737 pour faciliter le remplacement de                               #
$Z                                      # 'v $xivP_d06_f2/.TUR2.1.11.$U' par 'v $xiirs/.MOBI.13.1.$U'...                              #

#20241217181318____:$Z                  setParam            _____PostFixeMP               $MP4                                        #
#20241218094643____:$Z                  setParam            _____PostFixeMP               $MPEG                                       #

$Z                  if                  ($DATE < 20241218) then
$Z                                      setParam            _____PostFixeMP               $MP4
$Z                  else
$Z                                      setParam            _____PostFixeMP               $MPEG
$Z                                      # Le format '$MPEG' est celui qui garantit la possibilite de voir les animations avec tous    #
$Z                                      # les 'Firefox's ('v $Fcommandes 20241217160631')...                                          #
$Z                  endif

$Z                  if        ($?ENCODER_OPTIONS_O == $EXIST) then
$Z                                      # Test introduit le 20241203182938 car, en effet, il manquait. Cela s'est vu a cette date     #
$Z                                      # sur '$LACT1A' pour 'v $xiaq/$Fnota Debut_listG_HYDR_91_16'...                               #
#20241217180738____:$Z                  set       VaLiDe_PostFixeMP=`echo $_____PostFixeMP | $SE -e "s/[^$Alphabet_0_9]//g"`          #
#20241217180738____:$Z                  set       VaLiDe_ENCODER_OPTIONS_O=`echo $ENCODER_OPTIONS_O | $SE -e "s/[^$Alphabet_0_9]//g"` #

#20241218085737____:$Z                       set       VaLiDe_PostFixeMP=`echo $_____PostFixeMP | $SE -e 's/^.*\(.\)$/\1/'`           #
#20241218085737____:$Z                       set       VaLiDe_ENCODER_OPTIONS_O=`echo $ENCODER_OPTIONS_O | $SE -e 's/^.*\(.\)$/\1/'`  #
$Z                  else
$Z                            EROR      "Les options $K_QS""ENCODER_OPTIONS_O""$K_QS n'existent pas, il est plus sage d'aborter."
$Z                            exit
$Z                                      # C'est plus sage d'aborter...                                                                #
$Z                  endif

$Z                  switch    ("$mHOTE")
$Z                                      # Introduit le 20220226114231 car, en effet, la sequence d'encodage qui va suivre semble      #
$Z                                      # fonctionner tres bien sur '$LACT1B'. Au passage, je ne la comprend pas tres bien sur        #
$Z                                      # les autres MACHINEs...                                                                      #
$Z                                      #                                                                                             #
$Z                                      # Discrimination des differentes MACHINEs possibles :                                         #
$Z                       case "$CCVR11":
$Z                       case "$CCVR12":
$Z                       case "$CCVR13":
$Z                       case "$CCVR14":
$Z                       case "$CCVR21":
$Z                       case "$CMAP21":
$Z                       case "$CMAP22":
$Z                       case "$CMAP23":
$Z                       case "$CMAP24":
$Z                       case "$CMAP25":
$Z                       case "$CMAP26":
$Z                       case "$CMAP27":
$Z                       case "$CMAP28":
$Z                       case "$CMAP29":
$Z                       case "$EDFR12":
$Z                       case "$EDFR13":
$Z                       case "$EDFR14":
$Z                       case "$EDFR15":
$Z                       case "$EDFR21":
$Z                       case "$EDFR22":
$Z                       case "$EDFR22h":
$Z                       case "$IDRI11":
$Z                       case "$IDRI21":
$Z                       case "$INFO11":
$Z                       case "$INFO21":
$Z                       case "$INFO22":
$Z                       case "$INFO23":
$Z                       case "$INFO24":
$Z                       case "$INFO25":
$Z                       case "$INFO26":
$Z                       case "$LACT11":
$Z                       case "$LACT12":
$Z                       case "$LACT14":
$Z                       case "$LACT15":
$Z                       case "$LACT16":
$Z                       case "$LACT17":
$Z                       case "$LACT18":
#20250117180136____:$Z                       case "$LACT19":                                                                          #
#20250117180136____:$Z                       case "$LACT1A":                                                                          #
$Z                       case "$LACT71":
$Z                       case "$LACT21":
$Z                       case "$LACT22":
$Z                       case "$LACT23":
$Z                       case "$EDFR11":
$Z                       case "$HOME11":
$Z                       case "$LACT27":
$Z                       case "$LACT28":
$Z                       case "$LACT29":
$Z                       case "$LHYX11":
$Z                       case "$LINX11":
$Z                       case "$LINX12":
#20241217180738____:$Z   if        (    (    ("$VaLiDe_PostFixeMP" == "$K_VIDE") && ("$VaLiDe_ENCODER_OPTIONS_O" != "$K_VIDE"))    \  #
#20241217180738____:$Z             ||   (    ("$VaLiDe_PostFixeMP" != "$K_VIDE") && ("$VaLiDe_ENCODER_OPTIONS_O" == "$K_VIDE"))    \  #
#20241217180738____:$Z              ) then                                                                                            #

#20241218085737____:$Z                            IfBasic   ("$VaLiDe_PostFixeMP" != "$VaLiDe_ENCODER_OPTIONS_O") ThenBasic           #
$Z                                      # Validation introduite le 20211118183310...                                                  #
#20241218085737____:$Z   EROR "Le postixe $K_QS$_____PostFixeMP$K_QS est incompatible avec les options $K_QS$ENCODER_OPTIONS_O$K_QS." #
#20241218085737____:$Z                                                exit                                                            #
$Z                                      # C'est plus sage d'aborter...                                                                #
#20241218085737____:$Z                            ElseBasic                                                                           #
#20241218085737____:$Z                            EndifBasic                                                                          #
$Z                            breaksw
$Z                       case "$LACT19":
$Z                       case "$LACT1A":
$Z                            ATTENTION "Il n\'est pas sur que sur $K_QS$mHOTE$K_QS l\'encodage $K_QS$MP4$K_QS fonctionne proprement."
$Z                            answern   "Faut-il continuer ?"

$Z                            IfBasic   ("$answer" == "$Reponse_NON") ThenBasic
$Z                                      exit
$Z                                      # Interruption introduite le 20250117180136...                                                #
$Z                            ElseBasic
$Z                            EndifBasic
$Z                            breaksw
$Z                       case "$LACT1B":
$Z                            breaksw
$Z                       default:
$Z                                      # Cas des MACHINEs non reconnues :                                                            #
$Z                            EROR      "['"'$xiirs/.MOBI.13.1.$U'"'] La variable 'mHOTE' definit une machine inconnue,"
$Z                            EROR      "['"'$xiirs/.MOBI.13.1.$U'"'] elle vaut : '"$mHOTE"'"
$Z                            EROR      "['"'$xiirs/.MOBI.13.1.$U'"'] et la variable 'sHOTE' vaut : '"$sHOTE"'."
$Z                            breaksw
$Z                  endsw

$Z                  FilSTmpB            FCoNvErSiOn

$Z                  if                  ("$_____LRepetitions" == "$K_VIDE") then
$Z                                      # Test introduit le 20211118174630...                                                         #
$Z                                      set                 RaCiNe="$_____ImageT"
$Z                  else
$Z                                      set                 RaCiNe="$K_VIDE"
$Z                  endif

$Z                  if                  ($_____InverserMPEG == $NEXIST) then
$Z                                      set                 PremiereMPEG=$Premiere
$Z                                      set                 DerniereMPEG=$Derniere
$Z                                      set                 LiStE=`$xci/nombres$X A="$RaCiNe" p=$Premiere d=$Derniere`
$Z                  else
$Z                                      set                 PremiereMPEG=$Derniere
$Z                                      set                 DerniereMPEG=$Premiere
$Z                                      set                 LiStE=`$xci/nombres$X A="$RaCiNe" p=$Derniere d=$Premiere`
$Z                  endif

$Z                  unset               RaCiNe

$Z                  if                  ("$_____LRepetitions" != "$K_VIDE") then
$Z                                      # Test introduit le 20200319113134...                                                         #
$Z                                      FilSTmpB            FLiStE
$Z                                      FilSTmpB            FRePeTiTiOnS
$Z                                      FilSTmpB            FLiStE_RePeTeE

$Z                                      echo                "$LiStE"                                                              |     \
$Z                                      $R                  "$K_BLANC" "$K_NL"                                                    |     \
$Z                                      $SE                 -e "s/^0*//"                                                                \
$Z                                                                                                                 >> $FLiStE

$Z                                      echo                "$_____LRepetitions"                                                  |     \
$Z                                      $R                  "$K_BLANC" "$K_NL"                                                          \
$Z                                                                                                                 >> $FRePeTiTiOnS

$Z                                      $xrv/duplique.01$X  ne=0                                                                        \
$Z                                                          fichier=$FLiStE                                                             \
$Z                                                          exemplaires=$FRePeTiTiOnS                                                   \
$Z                                                          formater=VRAI entiers=VRAI signe="$K_VIDE"                            |     \
$Z                                      $SE                 -e "s/^/0000/"                                                              \
$Z                                                          -e 's+^.*\(....\)$'"+$_____ImageT\1+"                                       \
$Z                                                                                                                 >> $FLiStE_RePeTeE

$Z                                      set                 LiStE=`$CA $FLiStE_RePeTeE`
$Z                                      # Introduit le 20200319100737 pour faciliter le remplacement de                               #
$Z                                      # 'v $xivP_d06_f2/.TUR2.1.11.$U' par 'v $xiirs/.MOBI.13.1.$U'...                              #

$Z                                      FilSTmpE            FLiStE_RePeTeE
$Z                                      FilSTmpE            FRePeTiTiOnS
$Z                                      FilSTmpE            FLiStE
$Z                  else
$Z                  endif

$Z                  foreach             ImAgEt ($LiStE)
#20200318135416____:$Z   echo "$DELETE $ImAgEt$TIFF ; tiff3 $ImAgEt $ImAgEt ; $CONVERT $ImAgEt$TIFF $ImAgEt$PNG"   >> $FCoNvErSiOn    #

$Z                                      if                  ($_____PaletteMPEG == $RVB_DKVP) then
$Z   echo "$DELETE $ImAgEt$TIFF ; tiff3 $ImAgEt $ImAgEt                   ; $CONVERT $ImAgEt$TIFF $ImAgEt$PNG"     >> $FCoNvErSiOn
$Z                                      # Le '$DELETE' a ete introduit le 20150224150839. C'est en effet plus prudent dans le cas     #
$Z                                      # ou cette operation serait refaite plusieurs fois (suite a d'autres problemes...), le        #
$Z                                      # 'tiff3' faisant un 'ro' du fichier '$TIFF'...                                               #
$Z                                      #                                                                                             #
$Z                                      # Le 20200314130022, a cause de 'v $xEa/xlistN$vv$Y xlistN_NoCheckDELETE', ce qui precede     #
$Z                                      # a ete mis sur une seule ligne...                                                            #
$Z                                      else
$Z   echo "$DELETE $ImAgEt$TIFF ; tiff1 $ImAgEt $_____PaletteMPEG $ImAgEt ; $CONVERT $ImAgEt$TIFF $ImAgEt$PNG"     >> $FCoNvErSiOn
$Z                                      endif
$Z                  end

#20150205104933____:$Z                  setenv              SLinda              $EXIST                                                #

#20150224170013____:$Z                  setenv              TaillePaquetsLinda  8                                                     #
$Z                  setenv              TaillePaquetsLinda  32

$Z                  setenv              FindExec_MessagesBP $NEXIST

$Z                  $xcg/ExecParallele.01$Z                 $FCoNvErSiOn
$Z                                      # La parallelisation a ete introduite le 20150205100932...                                    #

$Z                  unsetenv            TaillePaquetsLinda
$Z                                      # Introduit le 20191021175629 car, en effet, il manquait...                                   #

$Z                  FilSTmpE            FCoNvErSiOn

$Z                  $DELETE             $_____Animation$_____PostFixeMP

$Z                  $ENCODER            $ENCODER_OPTIONS__                                                                              \
$Z                                      "mf://$_____ImageT*$PNG" $ENCODER_OPTIONS_I                                                     \
$Z                                      -o $_____Animation$_____PostFixeMP $ENCODER_OPTIONS_O                                     |&    \
$Z                  $GRE                -v -i "^MEncoder "                                                                        |     \
$Z                  $GRE                -v -i "swscaler"                                                                          |     \
$Z                  $GRE                -v -i "^ *Last message repeated 1 times"
$Z                                      # Le message "Last message repeated 1 times" a ete elimine le 20150220232333 a cause de       #
$Z                                      # '$CMAP28' (sur 'ternes.polytechnique.fr' avec certitude, mais pour les autres MACHINEs      #
$Z                                      # je n'en sais rien a cette date...).                                                         #

$Z                  foreach             ImAgEt ($LiStE)
$Z                                      $DELETE   $ImAgEt$PNG
$Z                                      $DELETE   $ImAgEt$TIFF
$Z                                      # Ce nettoyage qui manquait a ete introduit le 20241113122411...                              #
$Z                                      #                                                                                             #
$Z                                      # On notera que l'on ne peut pas utiliser :                                                   #
$Z                                      #                                                                                             #
$Z                                      #                   $DELETE   $ImAgEt.*                                                       #
$Z                                      #                                                                                             #
$Z                                      # a cause, par exemple, du '$xci/accumule.01$X' final de 'v $$xiak/$Fnota Fin_listG_REFN_F4'. #
$Z                  end                                                                                           #



Copyright © Jean-François COLONNA, 2019-2025.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2025.