Recherche avancée

Médias (0)

Mot : - Tags -/auteurs

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (11)

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

Sur d’autres sites (5038)

  • How to record screen using FFMPEG in Background and Stop It

    23 juillet 2022, par Tammam

    I'm making a video meeting application and implementing from this repository https://github.com/boratanrikulu/quik.do and I will make a screen record if I access the room/create room server side using FFMPEG. but I have a problem because after I access the FFMPEG command, the command does not run in the background so the handler to access the room does not run. I will also make a function to stop recording that does not affect the application (the application will still run)

    


    here my code

    


    func RoomCreate(c *fiber.Ctx) error {
    fileName := "out.mp4"
    fmt.Println(fileName)
    if len(os.Args) > 1 {
        fileName = os.Args[1]
    }
    // Record to video and wait for enter key asynchronously
    fmt.Printf("Starting...press enter to exit...")
    errCh := make(chan error, 2)
    ctx, _ := context.WithCancel(context.Background())
    // Record
    go func() { errCh <- recordToVideo(ctx, fileName) }()
    

    //The following program from FFMPEG will stop if you press enter, and will wait here so it doesn't enter create room
    // Wait for enter
    go func() {
        fmt.Scanln()
        errCh <- nil
    }()
    err := <-errCh
    //cancelFn()
    if err != nil && err != context.Canceled {
        log.Fatalf("Execution failed: %v", err)
    }
    // Wait a bit...
    //time.Sleep(4 * time.Second)
    return c.Redirect(fmt.Sprintf("/room/%s", guuid.New().String()))
}

func recordToVideo(ctx context.Context, fileName string) error {
    ctx, cancelFn := context.WithCancel(ctx)
    defer cancelFn()
    // Build ffmpeg
    ffmpeg := exec.Command("ffmpeg",
        "-f", "gdigrab",
        "-framerate", "30",
        "-i", "desktop",
        fileName,
    )
    // Stdin for sending data
    stdin, err := ffmpeg.StdinPipe()
    if err != nil {
        return err
    }
    //var buf bytes.Buffer
    defer stdin.Close()
    // Run it in the background
    errCh := make(chan error, 1)

    go func() {
        fmt.Printf("Executing: %v\n", strings.Join(ffmpeg.Args, " "))
        //Here if
        out, err := ffmpeg.CombinedOutput()
        fmt.Printf("FFMPEG output:\n%v\n", string(out))
        errCh <- err
    }()
    // Just start sending a bunch of frames
    for {
        // Check if we're done, otherwise go again
        select {
        case <-ctx.Done():
            return ctx.Err()
        case err := <-errCh:
            return err
        default:
        }
    }
}


    


    How do I get the command to run in the background ? and how to stop recording without stopping the application ?

    


  • fftools/ffmpeg : stop using OutputStream.frame_number in print_report()

    31 mars 2022, par Anton Khirnov
    fftools/ffmpeg : stop using OutputStream.frame_number in print_report()
    

    This field means different things when the video is encoded (number of
    frames emitted to the encoding sync queue/encoder by the video sync
    code) or copied (number of packets sent to the muxer sync queue).

    Print the value of packets_written instead, which means the same thing
    in both cases. It is also more accurate, since packets may be dropped by
    the sync queue or bitstream filters.

    • [DH] fftools/ffmpeg.c
  • fftools/ffmpeg : stop using av_stream_get_end_pts()

    1er avril 2022, par Anton Khirnov
    fftools/ffmpeg : stop using av_stream_get_end_pts()
    

    It retrieves the muxer's internal timestamp with under-defined
    semantics. Continuing to use this value would also require
    synchronization once the muxer is moved to a separate thread.

    Replace the value with last_mux_dts.

    • [DH] fftools/ffmpeg.c