Recherche avancée

Médias (0)

Mot : - Tags -/latitude

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

Autres articles (55)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

Sur d’autres sites (11074)

  • Revision 60f9ebc3f1 : Enable variable block size test in non-RD mode decision This is an initial atte

    19 mars 2014, par Jingning Han

    Changed Paths :
     Modify /vp9/encoder/vp9_encodeframe.c


     Modify /vp9/encoder/vp9_onyx_if.c


     Modify /vp9/encoder/vp9_onyx_int.h


     Modify /vp9/encoder/vp9_pickmode.c



    Enable variable block size test in non-RD mode decision

    This is an initial attempt to allow variable block size partition
    in non-RD coding flow. It tests 8x8, 16x16 and 32x32 block size per
    64x64 block, all using non-RD mode decision and the associated rate
    distortion costs from modeling, then selects the best block size to
    encode the entire 64x64 block. Such operations are triggered every
    other 3 frames. The blocks of intermediate frames will reuse the
    collocated block's partition type.

    It improves the compression performance by 13.2%. Note that the gains
    are not evenly distributed. For many hard clips, the compression
    performance is improved by 20% to 28%. Local speed test shows that
    it will also increase runtime by 50%, as compared to speed -7. It is
    now enabled in speed -6 setting.

    Change-Id : Ib4fb8659d21621c9075b3c369ddaa9ecb0a4b204

  • WinAPI multithreading access violation when writing in local variable

    26 février 2016, par JustPingo

    I’m making a multithreaded program using Visual C++, Win32 API (using _beginthread) that also uses FFmpeg (it is claimed to be thread-safe, and I’m using it only with one single thread anyway).

    Here is the part of my thread’s code that causes problems (everything is inside of the thread function) :

    Arena* arena = NULL;

    switch (task) {
       case TaskOne:
           arena = (Arena*) malloc(sizeof(Arena));
           for (uint i = 0; i < FIGHTSPERROUND; i++) {
               generateArena(arena, ARENAWALLSAMOUNT, ARENAWIDTH, ARENAHEIGHT, ARENAMAXENTITIES, 255);
               spawnPlayer(arena, playerOne, 3, 1, 0, 0, ARENAPLAYERLIFE);
               spawnPlayer(arena, playerTwo, 2, 2, ARENAWIDTH-1, ARENAHEIGHT-1, ARENAPLAYERLIFE);

               do {
                   tickArena(arena);
               } while ((result = getResult(arena)) == 0);

               switch (result) {
                   case 1: teamOneScore++; break;
                   case 2: teamTwoScore++; break;
                   default: break;
               }

               freeArena(arena);
               clearMemory(playerOne);
               clearMemory(playerTwo);
               clearBrain(playerOne);
               clearBrain(playerTwo);
           }
           threadTeamOneScore[threadID] = teamOneScore;
           threadTeamTwoScore[threadID] = teamTwoScore;
           break;

       default: break;
    }

    Here is how I generate my arena :

    void generateArena(Arena* arena, uint wallsAmount, uint xSize, uint ySize, uint maxEntities, uint maxTurns) {
       CasesTypes** map;
       map = (CasesTypes**) malloc(xSize * sizeof(CasesTypes*));
       memset(map, 0, xSize * sizeof(CasesTypes*));
       for (uint i = 0; i < xSize; i++) {
           map[i] = (CasesTypes*)malloc(ySize * sizeof(CasesTypes));
           memset(map[i], 0, ySize * sizeof(CasesTypes));
       }

       arena->map = map;
       arena->entities = (Entity*) malloc(maxEntities * sizeof(Entity));
       memset(arena->entities, 0, maxEntities * sizeof(Entity));
       arena->width = xSize;
       arena->height = ySize;
       arena->maxEntities = maxEntities;
       arena->maxTurns = maxTurns;
       arena->currentTurn = 0;
       arena->entitiesAmount = 0;
       for (uint i = 0; i < wallsAmount; i++)
           arena->map[random2(1, xSize-1)][random2(1, ySize-1)] = Wall;
    }

    This works as expected 4 times in 5.
    But sometimes, for some reason, arena = (Arena*) malloc(sizeof(Arena)); throws an access violation exception.

    For example, Visual Studio 2015’s debugger once said :
    Exception thrown at 0x77DBE389 (ntdll.dll) in MyProgram.exe: 0xC0000005: Access violation writing location 0x007C160F.

    When I used the debugger to find what ((void*) 0x007C160F) was, it always happened to be something similar to :

    avformat-57.dll!0x007c160f (load symbols for additional information)

    avformat is a part of FFmpeg. The address was different every times, but it always had something to do with FFmpeg.

    I can’t figure out what is causing the problem.
    If that can help, sometimes the arena also happens to get corrupted (some of its fields get extremely big while generating them with generateArena although it is never changed and only set once to an integer, this leads to a crash later).

    Thank you in advance !

  • how to get time bitrate, q and speed from ffmpeg using ffprobe ?

    24 décembre 2016, par user2631534

    i im using node js that creates and start ffmpeg for restream using pipe function that works but i im unable to get from stdout.pipe ffmpeg informations about started stream : bitrate, speed, time and q.

    this is what i get when i start ffmpeg using : ./ffmpeg -i http://serverip :/stream1.ts

    frame= 710 fps = 65 q=1.0 Lsize = 4974kB time=00:00:28.33 bitrate = 1437.9kbits/s speed = 2.61x

    and i would like to read into string this parameters so that i can write in mysql database and later show in datatables info...how to get frame, fps, q, time, bitrate and speed value into javascript variable so that i can use it later ?

    i im starting ffmpeg using this :

    function listener(id, stream_url) {
                   /* LISTENER - ffmpeg */
                   streams[id].on('close', function() {
                       /* START - stream */
                       stream(id, stream_url);
                   });
               }

               function stream(id, stream_url) {
                   /* START - ffmpeg */
                   streams[id] = child_process.spawn(process.env.PWD + "/node_modules/ffmpeg-static/bin/linux/x64/ffmpeg", [
                       "-re",                                                              /* STREAM - realtime    */
                       "-y",                                                               /* OVERWRITE - output file */
                       "-hide_banner",                                                     /* BANNER - hide        */
                       "-loglevel", "quiet",                                               /* LOG    - hide        */
                       "-i", stream_url,                                                   /* STREAM - source      */
                       "-vcodec", "copy",
                       "-reset_timestamps", "1",
                       "-movflags", "frag_keyframe+empty_moov",
                       "-f", "mpegts",
                       "-"
                   ], { detached: false });

                   /* LISTENER - ffmpeg */
                   listener(id, stream_url);
               }

               /* LOOP - throught all streams */
               for (var i in rows) {
                   /* CHECK - ffmpeg */
                   if (!streams[rows[i].id])  {

                       /* START - stream */
                       stream(rows[i].id, rows[i].stream);
                   };
               };

    And showing stream using :

    streamRoutes.get('/stream2', function(req, res) {
    /* STREAM - header */
    res.writeHead(200, {
     'Content-Type': 'video/H264'
    });            

    /* PIPE - stream to client */
    streams[2].stdout.pipe(res);

    ffprobe(streams[2].stdout, { path: ffprobeStatic.path }, function (err, info) {

           console.log(info);
       });

    }) ;

    i try using ffprobe input stream as stdout from ffmpeg that is read from memory but i get undefined in console.log....

    UPDATED QUESTION :

    i save file using this code to HDD and then read frpm fluent-ffmpeg-extended metadata and i im getting correct JSON data (duration, bitrate, resolution, time etc...) but i would like not to save stream to HDD to get informations...i would like to get from memory stream and get this informations...but fluent-ffmpeg-extended accept only local input file on HDD not stream (http link), how can i enter stream link into fluent-ffmpeg to get this infomations from memory (stdout.pipe) ?

    var inputfile = "http://myserverip/stream/ -vcodec copy -f mpegts 1.ts";
    var exec = require('child_process').exec;
    exec("/root/mediaxtream-codes/node_modules/ffmpeg-static/bin/linux/x64/ffmpeg" + ' -i ' + inputfile, function(err, stdout, stderr) {
       console.log(stdout);
    });

    function check() {
       var Metalib = require('fluent-ffmpeg-extended').Metadata;
       var metaObject = new Metalib("1.ts", function(metadata, err) {
           console.log(require('util').inspect(metadata, false, null));
       });
       setTimeout(check, 1000);
    };
    setTimeout(check, 1000);

    And form console.log in terminal i get correct informations every seconds :

    { ffmpegversion: '3.1',
    title: '',
    artist: '',
    album: '',
    track: '',
    date: '',
    durationraw: '00:02:02.08',
    durationsec: 122,
    synched: false,
    major_brand: undefined,
    video:
    { container: 'mpegts',
      bitrate: 2058,
      codec: 'h264',
      resolution: { w: 1280, h: 720 },
      resolutionSquare: { w: 1280, h: 720 },
      rotate: 0,
      fps: 25,
      stream: 0,
      aspectString: '16:9',
      aspect: 1.7777777777777777,
      pixelString: '1:1',
      pixel: 1 },
    audio: { codec: 'mp2', bitrate: 384, sample_rate: 48000, stream: 0 } }