Recherche avancée

Médias (91)

Autres articles (61)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (11382)

  • Gracefully closing FFMPEG child processes from node

    10 juin 2019, par Gordon

    I am trying to record numerous audio feeds using ffmpeg. Node downloads a config file with the stream URLS (HLS M3U8 playlists), parses it and starts the appropriate number of ffmpeg instances. When I go to shut them down, nothing happens and I have to kill them with task manager, resulting in corrupt files. When I am debugging and hit control-c within a minute or two of starting the program, it works without issue. When I need to record more than 5-10 minutes that I have problems.

    I found this related question from 2013, and adapted it to fit my multiple stream situation.

    The recorder processes are started with the following code (inside the http request callback) :

    config.audio_config.forEach((channel,i)=>{
    self.liveChannels++;

    console.log(`   ${channel.number}`);
    self.Channels[i] = spawn('ffmpeg', ['-i', `${channel.base_url + channel.stream_ios}`,  '-c:v', 'none', '-c:a', 'copy', `Output\\${config.folder}\\${channel.number}.m4a`]);
    self.Channels[i].stdin.setEncoding('utf8');
    self.Channels[i].chNum = channel.number;

    self.Channels[i].on('exit',(code,sig)=>{
    console.log(`   Channel ${channel.number} recorder closed.`);
    self.liveChannels--;
    if(self.liveChannels === 0){
       process.exit();
    }
    });
    });
    console.log('Press Ctl-C to start Shutdown');

    My shutdown function (triggered by SIGINT to main process) is :

    function shutdown() {
       self.Channels.forEach((chan)=>{
           chan.stdin.write('q');
           chan.stdin.end(); //I have tried both with and without this line and chan.stdin.end('q')
       });

    }

    UPDATE :
    Switching to an AAC container file (simply changed the extension on the output) removed the need for a graceful FFMPEG exit. I still would like to know why sending ’q’ to stdin only kills the FFMPEG process for the first 10 minutes.

  • ffplay does not exit in forked child

    6 septembre 2019, par user12030145

    ffplay  -autoexit does not exit in a forked child

    I need to pipe my application (stdout) to ffplay (stdin). I do this by forking ffplay as a child and using -i pipe:0 as argument.

    #include
    #include
    #include <sys></sys>types.h>
    #include <sys></sys>wait.h>

    int main(int argc, const char** argv)
    {
    int tube[2];
    int c;
    FILE* f = fopen(argv[1], "rb");
    pid_t pid;
    if (argc &lt; 2) return -1;
    if (pipe(tube))  {
       perror("Pipe");
       return -1;
     }

    // main process cats a .mlp file to stdout, sent to a child ffplay stdin through a pipe
    char* const arg[] = {"-i", "pipe:0", "-f", "mlp", "-nodisp", "-autoexit", NULL};
    switch (pid = fork())    {
               case -1:
                   fprintf(stderr,"%s\n", "Could not launch ffplay");
                   break;

               case 0:
                   close(tube[1]);
                   dup2(tube[0], STDIN_FILENO);
                   execv("/usr/bin/ffplay", arg);
                   fprintf(stderr, "%s\n", "Runtime failure in ffplay child process");
                   return -2;

               default:
                   close(tube[0]);
                   dup2(tube[1], STDOUT_FILENO);
           }

    // Here the main process code sending the .mlp file to stdout...

    while ((c = fgetc(f)) != EOF) putchar(c);

    waitpid(pid, NULL, 0);
    fclose(f);

    // main never returns
    return 0;
    }

    The issue is that in this context, ffplay -autoexit never exits (GNU-Linux platform). In a main process, ffplay -autoexit always exits at the end of a media file.
    Is there a pure C workaround without using system, popen or scripting ?
    Is this a feature or a bug of ffplay (I cannot tell) ?

  • avformat/hlsenc : Fix leak of child AVFormatContext

    16 décembre 2019, par Andreas Rheinhardt
    avformat/hlsenc : Fix leak of child AVFormatContext
    

    Before ed897633, the hls muxer would free its child AVFormatContexts
    and reset the pointer to these contexts to NULL immediately afterwards ;
    ed897633 moved the former to later (into a separate function), but kept
    the resetting, ensuring that the child context leaks.

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
    Reviewed-by : Steven Liu <lq@onvideo.cn>

    • [DH] libavformat/hlsenc.c