Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (110)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

  • Qu’est ce qu’un masque de formulaire

    13 juin 2013, par

    Un masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
    Chaque formulaire de publication d’objet peut donc être personnalisé.
    Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
    Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...)

Sur d’autres sites (5405)

  • ffmpeg disconnects from the HTTP server

    29 janvier 2017, par Frédéric Lopes

    I am facing to a problem that I cannot solve for days now and cannot find any answer over internet..

    I am currently working on a live streaming & IoT project through internet in order to access to indoor items and see through a webcam. I am using Node.js for the server side and using a mpeg1video decoder working with WebSocket (https://github.com/phoboslab/jsmpeg).

    All the server side (HTTP + WebSocket server) and client side are working properly (I see the clients connecting and waiting for sockets) but when I try to stream a video (or a camera) ffmpeg is not keeping the connection with my HTTP server, the connection is established but it is disconnected 1 second after being connected... Here is the terminal outputs gathered :

    if( process.argv.length < 4 ) {
       console.log(
           'Usage: \n' +
           'node stream-server.js [ ]'
       );
       process.exit();
    }

    var STREAM_PORT = process.argv[2] || 8080,
           WEBSOCKET_PORT = process.argv[3] || 8081,
           STREAM_MAGIC_BYTES = 'jsmp'; // Must be 4 bytes

    var width = 320,
           height = 240;

    // Websocket Server
    var socketServer = new (require('ws').Server)({port: WEBSOCKET_PORT});
    socketServer.on('connection', function(socket) {
       // Send magic bytes and video size to the newly connected socket
       // struct { char magic[4]; unsigned short width, height;}
       var streamHeader = new Buffer(8);
       streamHeader.write(STREAM_MAGIC_BYTES);
       streamHeader.writeUInt16BE(width, 4);
       streamHeader.writeUInt16BE(height, 6);
       socket.send(streamHeader, {binary:true});

       console.log('New WebSocket Connection ('+socketServer.clients.length+' total)');

       socket.on('close', function(code, message){
           console.log( 'Disconnected WebSocket ('+socketServer.clients.length+' total)' );
       });
    });

    socketServer.broadcast = function(data, opts) {
       for( var i in this.clients ) {
           if (this.clients[i].readyState == 1) {
               this.clients[i].send(data, opts);
           }
           else {
               console.log( 'Error: Client ('+i+') not connected.' );
           }
       }
    };

    // HTTP Server to accept incomming MPEG Stream
    var streamConnected = false;
    var streamServer = require('http').createServer(function(request, response) {
       response.connection.setTimeout(0);
       if(streamConnected) {
           response.end();
           return;
       }
       streamConnected = true;

       var params = request.url.substr(1).split('/');

       width = (params[0] || 320)|0;
       height = (params[1] || 240)|0;

       console.log(
           'Stream Connected: ' + request.socket.remoteAddress +
           ':' + request.socket.remotePort + ' size: ' + width + 'x' + height
       );

       request.on('data', function(data){
           socketServer.broadcast(data, {binary:true});
       });

       request.on('close', function(data){
           console.log("Stream disconnected");
           streamConnected = false;
       });

    }).listen(STREAM_PORT);

    console.log('Listening for MPEG Stream on http://127.0.0.1:'+STREAM_PORT+'/<width>/<height>');
    console.log('Awaiting WebSocket connections on ws://127.0.0.1:'+WEBSOCKET_PORT+'/');
    </height></width>

    Once the server running, I am using the command line to send my video to the http server :

    ffmpeg -f mp4 -i in.mp4 -f mpeg1video -r 30 http://127.0.0.1:8080

    Unfortunatelly, the connection is established for 1 seconde maximum and it disconnects right after.. I tried everything to keep it even setting a timeout to the request of ffmpeg.

    Thank you for those who are going to help me with this issue !

    UPDATE : Outputs gathered on the terminal

    1st is the output generated by ffmpeg :

    MacBook-Pro-de-Frederic: ffmpeg -f mp4 -i in.mp4 -f mpeg1video -r 30 http://127.0.0.1:8080
    ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
     built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
     configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
     libavutil      55. 34.100 / 55. 34.100
     libavcodec     57. 64.101 / 57. 64.101
     libavformat    57. 56.100 / 57. 56.100
     libavdevice    57.  1.100 / 57.  1.100
     libavfilter     6. 65.100 /  6. 65.100
     libswscale      4.  2.100 /  4.  2.100
     libswresample   2.  3.100 /  2.  3.100
     libpostproc    54.  1.100 / 54.  1.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf56.25.101
     Duration: 00:00:13.29, start: 0.000000, bitrate: 490 kb/s
       Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 300x198 [SAR 1:1 DAR 50:33], 489 kb/s, 22.73 fps, 22.73 tbr, 16k tbn, 45.45 tbc (default)
       Metadata:
         handler_name    : VideoHandler
    Output #0, mpeg1video, to 'http://127.0.0.1:8080':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.56.100
       Stream #0:0(und): Video: mpeg1video, yuv420p, 300x198 [SAR 1:1 DAR 50:33], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc57.64.101 mpeg1video
       Side data:
         cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> mpeg1video (native))
    Press [q] to stop, [?] for help
    frame=  398 fps=0.0 q=7.2 Lsize=     540kB time=00:00:13.23 bitrate= 334.2kbits/s dup=96 drop=0 speed=49.7x    
    video:540kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

    2nd output, the prints of the Node.js script :

    MacBook-Pro-de-Frederic: node stream-server.js 8080 8081
    Listening for MPEG Stream on http://127.0.0.1:8080/<width>/<height>
    Awaiting WebSocket connections on ws://127.0.0.1:8081/
    New WebSocket Connection (1 total)
    Stream Connected: ::ffff:127.0.0.1:52444 size: 320x240
    Stream disconnected
    </height></width>

    As you can see, my server receives the stream from ffmpeg but is disconnected right after.. Thus, I cannot do any stream and I don’t understand why because there is not any error that appears..

    UPDATE 2 : TESTED ON RASPBERRYPI MODEL B+

    I tested all the code hereabove on raspberry pi (after 5h installing ffmpeg..) and launch the encoding with the terminal command hereafter and it works perfectly ! I am still wondering why it is not working properly on Mac ? Maybe a problem of compatibility between OSX and FFMPEG ? If someone has an answer or an idea of the solution to the problem on Macintosh, let me know !

    raspivid -t 0 -w 320 -h 240 -fps 20 -vf -o - | ffmpeg -y -i pipe:0 -s 320x240 -f video4linux2 -f mpeg1video -b 400k -r 30 http://127.0.0.1:8080

    Configuration used : Macbook Pro updated running Node.js 6.9.2 & ffmpeg 3.2.2.

    Frederic

  • Added REDIRECT_ALLOW_TARGET option (defaults to HTTP referer).

    12 juin 2015, par blueimp
    Added REDIRECT_ALLOW_TARGET option (defaults to HTTP referer).
  • avformat/hlsenc : Call avio_flush during persistent http connections

    15 décembre 2017, par Karthick J
    avformat/hlsenc : Call avio_flush during persistent http connections
    

    Since close is not called, during http persistent connection,
    flush needs to be called so that output is written on time.

    Signed-off-by : Steven Liu <lq@chinaffmpeg.org>

    • [DH] libavformat/hlsenc.c