Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

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

Autres articles (40)

  • 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 (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

Sur d’autres sites (6819)

  • Converting RGB frames to YUV420P using FFmpeg/C++ [duplicate]

    20 mars 2014, par learner

    This question already has an answer here :

    I tried a code based on this tutorial. What this does is it writes first 5 frames of a video into memory in RGB format. I need to convert these RGB frames to YUV420P format so that I can pass them to YUV420P encoder. I tried using the sws_scale but then the resulting frames lose color information and also suffer from scaling issues. Also, looked at various questions but none gives a working solution. I am completely new to FFmpeg library and working on various tutorials to get a grip on it. I hope somebody can suggest a nice solution. Many thanks for your inputs !

    Following is the code :

    #include <ffmpeg></ffmpeg>avcodec.h>
    #include <ffmpeg></ffmpeg>avformat.h>

    #include

    void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame) {
     FILE *pFile;
     char szFilename[32];
     int  y;

     // Open file
     sprintf(szFilename, "frame%d.ppm", iFrame);
     pFile=fopen(szFilename, "wb");
     if(pFile==NULL)
       return;

     // Write header
     fprintf(pFile, "P6\n%d %d\n255\n", width, height);

     // Write pixel data
     for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);

     // Close file
     fclose(pFile);
    }

    int main(int argc, char *argv[]) {
     AVFormatContext *pFormatCtx;
     int             i, videoStream;
     AVCodecContext  *pCodecCtx;
     AVCodec         *pCodec;
     AVFrame         *pFrame;
     AVFrame         *pFrameRGB;
     AVPacket        packet;
     int             frameFinished;
     int             numBytes;
     uint8_t         *buffer;

     if(argc &lt; 2) {
       printf("Please provide a movie file\n");
       return -1;
     }
     // Register all formats and codecs
     av_register_all();

     // Open video file
     if(av_open_input_file(&amp;pFormatCtx, argv[1], NULL, 0, NULL)!=0)
       return -1; // Couldn&#39;t open file

     // Retrieve stream information
     if(av_find_stream_info(pFormatCtx)&lt;0)
       return -1; // Couldn&#39;t find stream information

     // Dump information about file onto standard error
     dump_format(pFormatCtx, 0, argv[1], 0);

     // Find the first video stream
     videoStream=-1;
     for(i=0; inb_streams; i++)
       if(pFormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO) {
         videoStream=i;
         break;
       }
     if(videoStream==-1)
       return -1; // Didn&#39;t find a video stream

     // Get a pointer to the codec context for the video stream
     pCodecCtx=pFormatCtx->streams[videoStream]->codec;

     // Find the decoder for the video stream
     pCodec=avcodec_find_decoder(pCodecCtx->codec_id);
     if(pCodec==NULL) {
       fprintf(stderr, "Unsupported codec!\n");
       return -1; // Codec not found
     }
     // Open codec
     if(avcodec_open(pCodecCtx, pCodec)&lt;0)
       return -1; // Could not open codec

     // Allocate video frame
     pFrame=avcodec_alloc_frame();

     // Allocate an AVFrame structure
     pFrameRGB=avcodec_alloc_frame();
     if(pFrameRGB==NULL)
       return -1;

     // Determine required buffer size and allocate buffer
     numBytes=avpicture_get_size(PIX_FMT_RGB24, pCodecCtx->width,
                     pCodecCtx->height);
     buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));

     // Assign appropriate parts of buffer to image planes in pFrameRGB
     // Note that pFrameRGB is an AVFrame, but AVFrame is a superset
     // of AVPicture
     avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24,
            pCodecCtx->width, pCodecCtx->height);

     // Read frames and save first five frames to disk
     i=0;
     while(av_read_frame(pFormatCtx, &amp;packet)>=0) {
       // Is this a packet from the video stream?
       if(packet.stream_index==videoStream) {
         // Decode video frame
         avcodec_decode_video(pCodecCtx, pFrame, &amp;frameFinished,
                  packet.data, packet.size);

         // Did we get a video frame?
         if(frameFinished) {
       // Convert the image from its native format to RGB
       img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24,
                       (AVPicture*)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width,
                       pCodecCtx->height);

       // Save the frame to disk
       if(++i&lt;=5)
         SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height,
               i);
         }
       }

       // Free the packet that was allocated by av_read_frame
       av_free_packet(&amp;packet);
     }

     // Free the RGB image
     av_free(buffer);
     av_free(pFrameRGB);

     // Free the YUV frame
     av_free(pFrame);

     // Close the codec
     avcodec_close(pCodecCtx);

     // Close the video file
     av_close_input_file(pFormatCtx);

     return 0;
    }
  • Grab (all) audio frames with ffmpeg, C/C++

    28 août 2020, par nji9

    For further analysis I need to access/ collect all samples of&#xA;audio files with ffmpeg.&#xA;There are lot of code examples around, but all of them are either out-of-date&#xA;(using deprecated or non-existing ffmpeg API),&#xA;or are buggy (multiple frames in packets etc), or are incomplete...

    &#xA;

    So, could some of the profs please present a simple working code ?

    &#xA;

    In : Just filename, Out : Just error code, Within : Determine properties and access audio frames.

    &#xA;

    Would probably be of great help not only for me ;-)

    &#xA;

    Thankyou in advance.

    &#xA;

  • Grab (all) audio samples with ffmpeg, C/C++ [closed]

    28 août 2020, par nji9

    For further analysis I need to access/ collect all samples of&#xA;audio files with ffmpeg.&#xA;There are lot of code examples around, but all of them are either out-of-date&#xA;(using deprecated or non-existing ffmpeg API),&#xA;or are buggy (multiple frames in packets etc), or are incomplete...

    &#xA;

    So, could some of the profs please present a simple working code ?

    &#xA;

    In : Just filename, Out : Just error code, Within : Determine properties and access audio samples.

    &#xA;

    Would probably be of great help not only for me ;-)

    &#xA;

    Thankyou in advance.

    &#xA;