Recherche avancée

Médias (16)

Mot : - Tags -/mp3

Autres articles (62)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

Sur d’autres sites (9435)

  • Calling ffmpeg api from Oracle

    1er mai 2012, par TenG

    I have installed ffmpeg and ffmpeg-devel packages on Linux.

    Oracle 11g is installed and running.

    The database stores media files, and for better streaming we need to convert them to AVI format.

    For ease of integration, we would like to do this conversion in the database.

    Now, the simplest option is to write a wrapper for the ffmpeg command line utility, and enable a PLSQL procedure to call this.

    However this would require the following steps :

    1. Read video BLOB
    2. Write to a OS file
    3. Call ffmpeg wrapper giving file name from (2) and output file name
    4. Load output file from 3 into a BLOB in PLSQL

    I would like to if possible write a C routine (using the Oracle External Library feature) which accepts the input as the BLOB (OciLOBLocator), calls the appropriate libavformat functions presenting the LOB, and write the return to a LOB (again OciLOBLOcator) which is what the PLSQL layer then uses as the AVI file.

    The other advantage of this is it avoids the undesirable impact of issuing a OS command from within Oracle.

    The problem I have is that the examples given for ffmpeg show the processing of data from files, whereas I need the libraries to process the LOBs.

    The alternative is to see if the OrdVideo data type in Oracle does this kind of conversion by using setformat and process.

  • How can you pass YUV frames from FFmpeg to OpenGL ES ?

    24 mai 2012, par TheRock

    Has anybody tried to use FFmpeg to decode a video frame, then display it in OpenGL ES in iOS 5.0 ?

    I tried to modify the GLCameraRipple example from Apple, but I always get a -6683 error from CVOpenGLESTextureCacheCreateTextureFromImage().

    Here is my decode code :

    ...

    convertCtx = sws_getContext(codecCtx->width, codecCtx->height, codecCtx->pix_fmt,
                               codecCtx->width, codecCtx->height, PIX_FMT_NV12,
                               SWS_FAST_BILINEAR, NULL, NULL, NULL);

    srcFrame = avcodec_alloc_frame();
    dstFrame = avcodec_alloc_frame();
    width = codecCtx->width;
    height = codecCtx->height;

    outputBufLength = avpicture_get_size(PIX_FMT_NV12, width, height);
    outputBuf = malloc(outputBufLength);

    avpicture_fill((AVPicture *)dstFrame, outputBuf, PIX_FMT_NV12, width, height);

    ...

    avcodec_decode_video2(codecCtx, srcFrame, &gotFrame, pkt);

    ...

    sws_scale(convertCtx,
             (const uint8_t**)srcFrame->data, srcFrame->linesize,
             0, codecCtx->height,
             dstFrame->data, dstFrame->linesize);

    Here is my code for display :

       CVPixelBufferRef pixelBuffer;
       CVPixelBufferCreateWithBytes(kCFAllocatorDefault, [videoDecoder width], [videoDecoder height],
                                    kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange,
                                    dstFrame->data[0], dstFrame->linesize[0], 0, 0, 0,
                                    &pixelBuffer);

       ...

    CVReturn err;
    int textureWidth = CVPixelBufferGetWidth(pixelBuffer);
    int textureHeight = CVPixelBufferGetHeight(pixelBuffer);

    if (!videoTextureCache)
    {
       NSLog(@"No video Texture cache");
    }

    CVPixelBufferLockBaseAddress(pixelBuffer, 0);

    // Y-plane
    err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,
                                                      videoTextureCache,
                                                      pixelBuffer,
                                                      NULL,
                                                      GL_TEXTURE_2D,
                                                      GL_RED_EXT,
                                                      textureWidth,
                                                      textureHeight,
                                                      GL_RED_EXT,
                                                      GL_UNSIGNED_BYTE,
                                                      0,
                                                      &lumaTexture);
    if (err)
    {
       NSLog(@"Error at CVOpenGLESTextureCacheCreateTextureFromImage %d", err);
    }

    glBindTexture(CVOpenGLESTextureGetTarget(lumaTexture), CVOpenGLESTextureGetName(lumaTexture));
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    // UV-plane
    err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,
                                                      videoTextureCache,
                                                      pixelBuffer,
                                                      NULL,
                                                      GL_TEXTURE_2D,
                                                      GL_RG_EXT,
                                                      textureWidth / 2,
                                                      textureHeight / 2,
                                                      GL_RG_EXT,
                                                      GL_UNSIGNED_BYTE,
                                                      1,
                                                      &chromaTexture);
    if (err)
    {
       NSLog(@"Error at CVOpenGLESTextureCacheCreateTextureFromImage %d", err);
    }

    glBindTexture(CVOpenGLESTextureGetTarget(chromaTexture), CVOpenGLESTextureGetName(chromaTexture));
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);

    I know that the code is not complete but it should be enough to understand my problem.

    Could anybody please help me or show me some working example with this approach ?

  • Légendes et interfaces tactiles

    8 juin 2013

    Le système de visualisation de légendes n’est pas optimisé du tout pour les systèmes tactiles (iOS / Android par exemple).

    Cet exemple est intéressant : http://io9.com/heres-what-pangea-looks-like-mapped-with-modern-politi-509812695

    Utiliser un bouton show / hide des légendes pour les afficher au lieu de ne se baser que sur le hover.

    Être fluide au redimensionnement de la fenêtre.