Recherche avancée

Médias (91)

Autres articles (63)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

Sur d’autres sites (12673)

  • FFMpeg RGB32 to NV12 using SWScale

    28 avril 2016, par KevinA

    I’m trying to convert RGB32 frames to NV12 Frames to feed into an encoder.

    m_iWidthIn = 1920;
    m_iHeightIn = 1080;
    m_iWidthOut = (((iWidthIn  + 31) >> 5) << 5) //32bit align
    m_heightOut = (((iHeightIn + 31) >> 5) << 5) //32bit align
    m_outputPixelFormat = AV_PIX_FMT_NV12;

    // allocate and fill buffers

    m_sws = ::sws_getContext(m_iWidthIn, m_iHeightIn, AV_PIX_FMT_RGB32, m_iWidthOut, m_iHeightOut, m_outputPixelFormat, SWS_FAST_BILINEAR, nullptr, nullptr, nullptr);
    AVFrame* frameOut = av_frame_alloc();
    frameOut->height = m_iHeightOut;
    frameOut->width = m_iWidthOut;
    frameOut->format = m_outputPixelFormat;
    av_frame_get_buffer(frameOut, 32);
    int linesize[1] = { m_iWidthIn * 4 };
    uint8_t * data[1] = { m_inputBuffer  };
    if (m_bFlip)
    {
       data[0] += linesize[0] * (m_iHeightIn - 1);
       linesize[0] = -linesize[0];
    }
    ::sws_scale(m_sws, data, linesize, 0, m_iHeightIn, frameOut->data, frameOut->linesize);
    ::av_image_copy_to_buffer(pOutputBuffer, lDataLen, frameOut->data, frameOut->linesize, m_outputPixelFormat, m_iWidthOut, m_iHeightOut, 32);

    If I make m_outputPixelFormat AV_PIX_FMT_RGB32 and use a DMO colorspace converter, the video comes out correctly. However if I change it to NV12, I end up with a slanted video with missing data at the bottom.
    I know this is caused by me copying the data incorrectly out of the buffer, but I’m unsure what I’m doing incorrectly.

  • FFMpeg muxing h264 to mp4 resultant file is not running

    11 mars 2016, par M.Taha

    I am writing code to mux h264 file into mp4 by using latest FFMPEG 3.0. Muxing is working but the resultant mp4 file is not showing vedio, only the time is running when i play the resultant mp4 file. Kindly try to help to solve this. Please tell me what i am missing. Here is my code :

    int main()
    {  
       avcodec_register_all();

       av_register_all();

       // define AVOutputFormat
       AVOutputFormat *avoutputFormat = NULL;
       avoutputFormat = av_guess_format("mp4", NULL, NULL);
       if (!avoutputFormat) {
       fprintf(stderr, "Could not find suitable output format\n");
       return 1;
       }

       AVFormatContext *avoutFmtCtx = NULL;
       /*Below initialize AVFormatContext.*/
       avformat_alloc_output_context2(&avoutFmtCtx, avoutputFormat, NULL, NULL);

       avoutFmtCtx->oformat = avoutputFormat;
       sprintf_s(avoutFmtCtx->filename, "%s", "Out.mp4");  /*Filling output file name..*/

       if (avoutputFormat->video_codec == AV_CODEC_ID_NONE)
       printf("\n Unsupported format...");

       AVStream * avoutStrm = avformat_new_stream(avoutFmtCtx, 0);

       if (!avoutStrm) {
       _tcprintf(_T("FFMPEG: Could not alloc video stream\n"));        
       }

       AVCodecContext *c = avoutStrm->codec;
       c->codec_id     = avoutputFormat->video_codec;
       c->codec_type   = AVMEDIA_TYPE_VIDEO;
       c->bit_rate     = 2000*1000;
       c->width        = 1920;
       c->height       = 1080;
       AVRational avr;
       avr.den = 30;
       avr.num = 1;

       avoutStrm->time_base = c->time_base = av_add_q(avoutStrm->codec->time_base, avr);

       // Some formats want stream headers to be separate
       if(avoutFmtCtx->oformat->flags & AVFMT_GLOBALHEADER)
       c->flags |= CODEC_FLAG_GLOBAL_HEADER;

       // Open the output container file
       if (avio_open(&avoutFmtCtx->pb, avoutFmtCtx->filename, AVIO_FLAG_WRITE) < 0)
       {
       _tcprintf(_T("FFMPEG: Could not open '%s'\n"), avoutFmtCtx->filename);      
       }

       m_pExtDataBuffer = (uint8_t*)av_malloc(1000 + 1000);
       if(!m_pExtDataBuffer) {
       _tcprintf(_T("FFMPEG: could not allocate required buffer\n"));

       }

       uint8_t SPSbuf[1000];
       uint8_t PPSbuf[1000];
       memcpy(m_pExtDataBuffer, SPSbuf, 1000);            
       memcpy(m_pExtDataBuffer + 1000, PPSbuf, 1000);  

       /* Codec "extradata" conveys the H.264 stream SPS and PPS info (MPEG2: sequence header is housed in SPS buffer, PPS buffer is empty)*/
       c->extradata        = m_pExtDataBuffer;
       c->extradata_size   = 1000 + 1000;

       if(avformat_write_header(avoutFmtCtx,NULL)) {
       _tcprintf(_T("FFMPEG: avformat_write_header error!\n"));

       }

       /* Here do writing data in loop...*/
       int m_nProcessedFramesNum = 0;

       while(1)
       {
       ++m_nProcessedFramesNum;
       AVPacket pkt;
       av_init_packet(&pkt);

       AVCodecContext *c = avoutStrm->codec;
       avoutStrm->pts.val = m_nProcessedFramesNum;
       pkt.stream_index    = avoutStrm->index;

       pkt.data            = /*Filling h.264 data from here... This is valid h264 data*/
       pkt.size            = /*Filling valid h264 data size here...*/
       av_new_packet(&pkt,pkt.size);
       pkt.pts = m_nProcessedFramesNum*512;
       pkt.dts = m_nProcessedFramesNum*512;
       pkt.duration = 512;

       // Write the compressed frame in the media file
       if (av_interleaved_write_frame(avoutFmtCtx, &pkt)) {
       _tcprintf(_T("FFMPEG: Error while writing video frame\n"));        
       }/*End of loop.*/

       av_free_packet(&pkt);      

       }  
       av_write_trailer(avoutFmtCtx);
       avio_close(avoutFmtCtx->pb);
       avformat_free_context(avoutFmtCtx);
    }
  • Low processing for conversation of .MOV file to .mp4 using ffmpeg [closed]

    4 janvier 2021, par zain rauf

    I am using the below CMD for converting .mov file to .mp4 with following resolution options

    


    ffmpeg -y -i 'Aws s3 video link of .mov file' -vcodec h264 -acodec acc -vf scale=1080:1920,setsar=1:1 -q:a 10 -q:v 3 -preset ultrafast -r 25 -f mp4 -c:a copy tmp/filename-resize.mp4

    


    Issue is that it works very slow when i am using input file as a AWS s3 video link