Bonjour

j'essaie de pouvoir afficher texte et image tout en lancant une commande shell_exec qui me permet de transcoder des video avec FFMPEG

Malheureusement , ou que je place la commande shell exec , rien ne s affiche , il lance direct la commande ce qui me bloque le navigateur tout le temps que prends le transcodage de la video... ( petit sablier et ecran blanc )

dans l ideal j aurais voulu avoir une barre de progression mais pas reussi non plus à defaut je me contenterais d un gif anime

avant cette page j ai une autre qui affiche la liste des video à transcoder et un bouton qui appel cette page

j ai tenter aussi avec & à la fin de lancer en tache de fond ma commande mais ca marche pas , mon serveur php est sous windows et pas linux

Merci pour votre aide , je m 'en sors pas

voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Players </title>
<meta charset="UTF-8">
<link href="css/style.css" rel="stylesheet" media="all" type="text/css">
</head>
 
<body>
 
    <div id="etape">
    <div id="moncadre">
 
    <h1>TRANSCODAGE DES FICHIERS EN COURS</h1>
    <br>
    <br>
    <div> <img src="img/barre.gif"/></div>
 
    <h4>Merci de Patienter......</h4>
 
 
 
 
    </div>
    </div>  
 
</body>
 
<?php
 
 
ffmpegcodage($_COOKIE['dossierSource']);
 
function ffmpegcodage ($dirSource){
 
//test présence ffmpeg
$filename = FFMPEG;
 
if (file_exists($filename)) {
    echo "";
} else {
    echo "Le fichier $filename n'existe pas.";
}
 
$dossier =DOSSIER_DESTINATION;
$destination=$dirSource.$dossier."/";
 
// lancement ffmpeg avec les paramètres de config.php
 $files = glob($dirSource.'/*.wmv');
 
$nb    = count($files);
$today = date("d_m_Y_H_i_s"); // date du jours à insérer dans le nom des fichiers de sortie
$n = rand(0,100000);
$compteur=0;
 
 
foreach ($files as $f){
 
    $compteur++;
 
 // echo " " . FFMPEG . ffmpegparam . $f.$destination . $today . $n .$compteur .".ts" . " & "; // pour tester la commande
 //echo $f;
 
  $codage = shell_exec (" " . FFMPEG . ffmpegparam .$f . paramFFmpeg. $destination . $today.$n .$compteur .".ts"." &"  );
 
 }
 
 return ;
}
 
 
$dirSource= $_COOKIE['dossierSource'];
$source2=$dirSource."/";
 
 
 
if($dossier = opendir($source2))
{
    while(false !== ($fichier = readdir($dossier)))
    {
        // Ajouter dans la boucle if les fichiers a ne pas prendre en compte
        if( $fichier != '.' && $fichier != '..' && $fichier != 'index.php' && preg_match('#\.(wmv)$#i', $fichier))
        {
 
 
                             unlink( $source2.$fichier);
 
        }
    }}// On ferme le if (qui permet de ne pas afficher index.php, etc.)
 
  header('Location: concat.php');  // A mettre en commentaire pour tester ffmpegEncoding.inc.php //
 
?>