Recherche avancée

Médias (91)

Autres articles (98)

  • Soumettre bugs et patchs

    10 avril 2011

    Un logiciel n’est malheureusement jamais parfait...
    Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
    Si vous pensez avoir résolu vous même le bug (...)

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (13072)

  • Revision c4cb8059ff : Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 4"

    27 février 2015, par Jingning Han

    Changed Paths :
     Modify /vp9/common/x86/vp9_high_loopfilter_intrin_sse2.c



    Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 4"

  • FPS too high when saving video in mp4 container

    18 janvier 2016, par theateist

    When I decode frames from avi file and then decode them in x264 and save to mp4 file, the fps of the output file is always 12,800. Therefore the file is played very fast. But, when I save the encoded in h264 frames in avi format and not mp4, so the fps is as I wanted - 25.

    What could be the problem ?

    Here the code I wrote in VS2010 :

    #include "stdafx.h"
    #include "inttypes.h"

    extern "C" {
    #include "libavcodec/avcodec.h"
    #include "libavformat/avformat.h"
    #include "libavutil/avutil.h"
    #include <libswscale></libswscale>swscale.h>
    #include <libavutil></libavutil>opt.h>
    #include <libswscale></libswscale>swscale.h>
    #include <libavutil></libavutil>imgutils.h>
    }

    #include <iostream>
    using namespace std;

    int main(int argc, char* argv[])
    {
      const char* inFileName = "C:\\000227_C1_GAME.avi";
      const char* outFileName = "c:\\test.avi";
      const char* outFileType = "avi";

      av_register_all();

      AVFormatContext* inContainer = NULL;  
      if(avformat_open_input(&amp;inContainer, inFileName, NULL, NULL) &lt; 0)  
         exit(1);

      if(avformat_find_stream_info(inContainer, NULL) &lt; 0)
         exit(1);

      // Find video stream
      int videoStreamIndex = -1;
      for (unsigned int i = 0; i &lt; inContainer->nb_streams; ++i)
      {
         if (inContainer->streams[i] &amp;&amp; inContainer->streams[i]->codec &amp;&amp;
            inContainer->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
         {
            videoStreamIndex = i;
            break;
         }
      }
      if (videoStreamIndex == -1) exit(1);

      AVFormatContext* outContainer = NULL;
      if(avformat_alloc_output_context2(&amp;outContainer, NULL, outFileType, outFileName) &lt; 0)
         exit(1);

      // ----------------------------
      // Decoder
      // ----------------------------
      AVStream const *const inStream = inContainer->streams[videoStreamIndex];
      AVCodec *const decoder = avcodec_find_decoder(inStream->codec->codec_id);
      if(!decoder)
         exit(1);
      if(avcodec_open2(inStream->codec, decoder, NULL) &lt; 0)
         exit(1);

      // ----------------------------
      // Encoder
      // ----------------------------            
      AVCodec *encoder = avcodec_find_encoder(AV_CODEC_ID_H264);
      if(!encoder)
         exit(1);
      AVStream *outStream = avformat_new_stream(outContainer, encoder);      
      if(!outStream)
         exit(1);
      avcodec_get_context_defaults3(outStream->codec, encoder);  

      // Construct encoder
      if(outContainer->oformat->flags &amp; AVFMT_GLOBALHEADER)
         outStream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;  

      outStream->codec->coder_type = AVMEDIA_TYPE_VIDEO;
      outStream->codec->pix_fmt = AV_PIX_FMT_YUV420P;
      outStream->codec->width = inStream->codec->width;
      outStream->codec->height = inStream->codec->height;
      outStream->codec->codec_id = encoder->id;
      outStream->codec->bit_rate = 500000;
      //outStream->codec->rc_min_rate = 600000;
      //outStream->codec->rc_max_rate = 800000;

      outStream->codec->time_base.den = 25;
      outStream->codec->time_base.num = 1;
      outStream->codec->gop_size = 250; // Keyframe interval(=GOP length). Determines maximum distance distance between I-frames
      outStream->codec->keyint_min = 25; // minimum GOP size
      outStream->codec->max_b_frames = 3;//16; // maximum number of B-frames between non-B-frames
      outStream->codec->b_frame_strategy = 1; // decides the best number of B-frames to use. Default mode in x264.
      outStream->codec->scenechange_threshold = 40;
      outStream->codec->refs = 6; // abillity to reference frames other than the one immediately prior to the current frame. specify how many references can be used.
      outStream->codec->qmin = 0;//10;
      outStream->codec->qmax = 69;//51;
      outStream->codec->qcompress = 0.6;
      outStream->codec->max_qdiff = 4;
      outStream->codec->i_quant_factor = 1.4;//0.71;  

      outStream->codec->refs=1;//3;
      outStream->codec->chromaoffset = -2;
      outStream->codec->thread_count = 1;  
      outStream->codec->trellis = 1;
      outStream->codec->me_range = 16;
      outStream->codec->me_method = ME_HEX; //hex
      outStream->codec->flags2 |= CODEC_FLAG2_FAST;  
      outStream->codec->coder_type = 1;


      if(outStream->codec->codec_id == AV_CODEC_ID_H264)
      {
           av_opt_set(outStream->codec->priv_data, "preset", "slow", 0);
      }

      // Open encoder
      if(avcodec_open2(outStream->codec, encoder, NULL) &lt; 0)
         exit(1);

      // Open output container
      if(avio_open(&amp;outContainer->pb, outFileName, AVIO_FLAG_WRITE) &lt; 0)
         exit(1);

      //close_o

      AVFrame *decodedFrame = avcodec_alloc_frame();
      if(!decodedFrame)
         exit(1);
      AVFrame *encodeFrame = avcodec_alloc_frame();
      if(!encodeFrame)
         exit(1);
      encodeFrame->format = outStream->codec->pix_fmt;
      encodeFrame->width = outStream->codec->width;
      encodeFrame->height = outStream->codec->height;
      if(av_image_alloc(encodeFrame->data, encodeFrame->linesize,
                    outStream->codec->width, outStream->codec->height,
                    outStream->codec->pix_fmt, 1) &lt; 0)
         exit(1);

      av_dump_format(inContainer, 0, inFileName,0);

      //Write header to ouput container
      avformat_write_header(outContainer, NULL);

      AVPacket decodePacket, encodedPacket;
      int got_frame, len;
      while(av_read_frame(inContainer, &amp;decodePacket)>=0)
      {      
         if (decodePacket.stream_index == videoStreamIndex)
         {                  
            len = avcodec_decode_video2(inStream->codec, decodedFrame, &amp;got_frame, &amp;decodePacket);
            if(len &lt; 0)
               exit(1);
            if(got_frame)
            {
               av_init_packet(&amp;encodedPacket);
               encodedPacket.data = NULL;
               encodedPacket.size = 0;        
               if(avcodec_encode_video2(outStream->codec, &amp;encodedPacket, decodedFrame, &amp;got_frame) &lt; 0)
                  exit(1);
               if(got_frame)
               {
                  if (outStream->codec->coded_frame->key_frame)
                     encodedPacket.flags |= AV_PKT_FLAG_KEY;

                  encodedPacket.stream_index = outStream->index;

                  if(av_interleaved_write_frame(outContainer, &amp;encodedPacket) &lt; 0)
                     exit(1);

                  av_free_packet(&amp;encodedPacket);
               }
            }
         }

         av_free_packet(&amp;decodePacket);
      }
      av_write_trailer(outContainer);
      avio_close(outContainer->pb);

      avcodec_free_frame(&amp;encodeFrame);
      avcodec_free_frame(&amp;decodedFrame);

      avformat_free_context(outContainer);
      av_close_input_file(inContainer);
      return 0;
    }
    </iostream>
  • timefilter : Handle memory allocation failure

    22 octobre 2013, par Derek Buitenhuis
    timefilter : Handle memory allocation failure
    

    Signed-off-by : Derek Buitenhuis <derek.buitenhuis@gmail.com>

    • [DBH] libavdevice/jack_audio.c
    • [DBH] libavdevice/timefilter.c
    • [DBH] libavdevice/timefilter.h