
Recherche avancée
Médias (91)
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#1 The Wires
11 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (27)
-
Changer son thème graphique
22 février 2011, parLe thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
Modifier le thème graphique utilisé
Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
Il suffit ensuite de se rendre dans l’espace de configuration du (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (3291)
-
avformat/aadec : Don't use the same loop counter in inner and outer loop
5 décembre 2021, par Andreas Rheinhardt -
Freeze when writing ffmpeg execution result to io.Pipe
7 novembre 2023, par alexI am writing a wrapper to work with
exec.Cmd
to work withio.Pipe
. The wrapper is intended to simplify work with the file system, I want to convert a video, write the result of the conversion toio.Pipe
, read it in the goroutine and transfer it to make a preview of the new converted file. For this purpose I useFFmpeg
. But I've encountered a problem, when I start the test the execution just hangs and I can't get any result, but there are no errors, everything just hangs.

CmdRunner source code


type CmdRunner struct {
 commander Commander
 StdIn io.ReadCloser
 StdoutWriter io.WriteCloser
 StdErrWriter io.Writer
}

func (c *CmdRunner) RunByPipe(ctx context.Context) error {
 //done := make(chan error)
 name, args := c.commander.Command()
 cmd := exec.CommandContext(ctx, name, args...)

 if c.StdIn != nil {
 fmt.Print("RunByPipe STDIN\n")
 cmd.Stdin = c.StdIn
 }

 if c.StdoutWriter != nil {
 fmt.Print("RunByPipe STDOUT\n")
 cmd.Stdout = c.StdoutWriter
 }

 stderr := bytes.Buffer{}
 cmd.Stderr = &stderr

 if err := cmd.Start(); err != nil {
 return err
 }

 if err := cmd.Wait(); err != nil {
 return err
 }

 if stderr.String() != "" {
 return fmt.Errorf("want empty stderr, but got %s", stderr.String())
 }

 return nil
}




Unit test code


type TestCommander struct {
 name string
 args []string
}

func (c *TestCommander) SetCommand(name string, args []string) {
 c.name = name
 c.args = args
}

func (c *TestCommander) Command() (string, []string) {
 return c.name, c.args
}

func TestConvert(t *testing.T) {
 ctx := context.Background()
 filePath := "testdata/input_mp4.mp4"
 data, err := convertFile(filePath, ctx)
 outFile := "testdata/output_mp4.mp4"
 if err != nil {
 fmt.Print("ERR: ", err, "\n")
 }

 os.WriteFile(outFile, data, 0644)

}

func convertFile(filePath string, ctx context.Context) (bytes []byte, err error) {
 // Create a CmdRunner instance with your custom Commander.
 runner := &CmdRunner{}
 commander := &TestCommander{}
 args := []string{
 "-nostats",
 "-i", filePath,
 "-y",
 "-loglevel", "0",
 "-filter:v", "fps=30, crop=trunc(iw/2)*2:trunc(ih/2)*2",
 "-c:v", "libx264",
 "-c:a", "aac",
 "-pix_fmt", "yuv420p",
 "-movflags", "frag_keyframe+faststart",
 "-bufsize", "24M",
 "-maxrate", "12M",
 "-f", "mp4",
 "pipe:1",
 }

 commander.SetCommand("ffmpeg", args)
 runner.SetCommander(commander)
 outputPipeReader, outputPipeWriter := io.Pipe()
 runner.SetStdOutWriter(outputPipeWriter)

 wg := &sync.WaitGroup{}
 wg.Add(1)
 go func() {
 defer outputPipeReader.Close()
 defer wg.Done()

 // Read data from output pipe
 bytes, err = io.ReadAll(outputPipeReader)
 if err != nil {
 fmt.Print("\nReadAll err: ", err, "\n")
 }
 }()

 err = runner.RunByPipe(ctx)
 if err != nil {
 fmt.Print("\nRunByPipe err: ", err, "\n")
 return
 }

 wg.Wait()

 return
}



I can't find a clue as to what might have gone wrong.
P.S : But if I remove
if err := cmd.Wait(); err != nil { return err }
Then the problem goes away, but there will be no data, because nothing is written toio.Pipe
.Why ?

-
Anomalie #3611 (Nouveau) : Impossible de rajouter un lien de traduction
4 décembre 2015, par realet RealETSite juste migré de 2.1.28 à 3.1rc2
ecrire/ ?exec=configurer_multilinguisme indique :
Rubriques
[x] Rubriques : activer le menu de langue
[x] ... seulement pour les rubriques situées à la racine ?
Articles
[x] Articles : activer le menu de langue
[x] Articles : gérer les liens de traductionEt dans un article, cadre Langue de l’article, le bouton [Changer] ne déplie rien. Il est donc impossible d’indiquer que cet article est une traduction d’un autre article.