Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (71)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

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

  • ffmpeg avcodec_open2 returns -22 if I change my speaker configuration

    5 octobre 2014, par pacificator

    I keep having a strange issue lately.
    Depending on how I set up my audio configuration in windows ( stereo/quad/5.1 ), a ffmpeg call to avcodec_open2() fails with error -22 or just works.
    Not being able to find much about that error, I thought I should ask about it here.
    The main flow goes like this :

    c = st->codec;
    avformat_alloc_output_context2(&oc, NULL, NULL, "video.mpeg");
    oc->fmt->audio_codec = AV_CODEC_ID_MP2;
    AVDictionary* dict = NULL;
    ret = av_dict_set(&dict, "ac", "2", 0);
    c->request_channels = 2;

    ret = avcodec_open2(c, codec, &dict); //HERE IT FAILS WITH -22 if speaker configuration  is not stereo

    The codec context ’c’ is set up like this in a stream :

    st = avformat_new_stream(oc, *codec);
    c = st->codec;
    c->channels     = 2;
    c->channel_layout = AV_CH_LAYOUT_STEREO;
    c->sample_fmt   = AV_SAMPLE_FMT_S16;
    c->codec_id     = codec_id;

    Most of it is copied from their one of the muxing examples found in the documentation.
    Everything works as expected if in windows I have set the output to stereo.

    If I set my speaker configuration to 5.1 ( 6 channels ), avcodec_open2 fails with error -22.

    So I have a hard time understanding what am I doing wrong. Normally it should not be any relationship between my speaker configuration and the result of avcodec_open2.

    Are there some other parameters that I need to set ?

  • FFmpeg returns empty byte when retrieving frames with python

    13 août 2020, par Ronald Saunfe

    I am trying to retrieve frames from a video frame by frame using ffmpeg which i downloaded here but i get an empty response as byte :
i need someone to outline what my problem is.I got the solution from a blog here
Here is my source code :

    


    import subprocess as sp

command=['bin\\ffmpeg.exe',
'-i','%s'%self.source,
'-f','image2pipe',
'-pix_fmt','rgb24',
'-vcodex','rawvideo','-']

self.pipe = sp.Popen(command, stdout = sp.PIPE, bufsize = 10**8)
Raw_image = self.pipe.stdout.read(420*360*3)


    


  • Encoding of video returns 0, and nothing written to the output file

    14 juillet 2014, par AnilJ

    I have written a code to record the webcam feed into a file on disk. I am attempting to do this using IContainer class rather than IMediaWriter class. I am pasting the code snippet below showing important sections of the code.

    The problem I am facing is that nothing is being written to the file. Some of the observations I have made are as follows :

    1. In the Record() function, the ’while’ loop is kicked off, but the mVideoEncoder.encodeVideo(packet, frame, offset) ; method always returns zero (0). This results in no picture complete and no data is being written to the output file. Can you please provide clue as to what is missing ?
    2. I checked that the frame size is 80640, which confirms that frame has data.
    3. I see that only header and trailer is being written to the file.

    Let me know if you need any other information.

    public class WebcamRecorder {

       private boolean StartVideoEncoder() {

           boolean result = true;

           // Open a container
           mPositionInMicroseconds = 0;
           mOutputContainer = IContainer.make();
           mOutputContainer.open(mOutputFileName, IContainer.Type.WRITE, null);

           // Create the video stream and get its coder
           ICodec videoCodec = ICodec.findEncodingCodec(ICodec.ID.CODEC_ID_H264);
           IStream videoStream = mOutputContainer.addNewStream(videoCodec);
           mVideoEncoder = videoStream.getStreamCoder();

           // Setup the stream coder
           mFrameRate = IRational.make(1, 30);
           mVideoEncoder.setWidth(Constants.RESAMPLE_PICT_WIDTH);
           mVideoEncoder.setHeight(Constants.RESAMPLE_PICT_HEIGHT);
           mVideoEncoder.setFrameRate(mFrameRate);
           mVideoEncoder.setTimeBase(IRational.make(mFrameRate.getDenominator(),
                                     mFrameRate.getNumerator()));
           mVideoEncoder.setBitRate(350000);
           mVideoEncoder.setNumPicturesInGroupOfPictures(30);
           mVideoEncoder.setPixelType(IPixelFormat.Type.YUV420P);
           mVideoEncoder.setFlag(IStreamCoder.Flags.FLAG_QSCALE, true);
           mVideoEncoder.setGlobalQuality(0);

           // Open the encoder
           mVideoEncoder.open(null, null);

           // Write the header
           mOutputContainer.writeHeader();

           return result;
       }

       public void Record() {

           picture = GetNextPicture();
           image = Utils.videoPictureToImage(picture);
           // convert to the right image type
           BufferedImage bgrScreen = ConvertToType(image, BufferedImage.TYPE_3BYTE_BGR);
           IConverter converter = ConverterFactory.createConverter(bgrScreen, mVideoEncoder.getPixelType());
           IVideoPicture frame = converter.toPicture(bgrScreen, mPositionInMicroseconds);
           frame.setQuality(0);

           IPacket packet = IPacket.make();
           int offset = 0;
           while (offset < frame.getSize()) {
               int bytesEncoded = mVideoEncoder.encodeVideo(packet, frame, offset);
               if (bytesEncoded < 0) {
                   throw new RuntimeException("Unable to encode video.");
               }
               offset += bytesEncoded;

               if (packet.isComplete()) {
                   System.out.println("Packet is complete");
                   if (mOutputContainer.writePacket(packet) < 0) {
                       throw new RuntimeException(
                               "Could not write packet to container.");
                   }

                   // Update frame time
                   mPositionInMicroseconds += (mFrameRate.getDouble() * Math.pow(1000, 2));
                   break;
               }
           }
       }

       public void Cleanup() {

           if (mOutputContainer != null) {
               mOutputContainer.writeTrailer();
               mOutputContainer.close();
               // mOutputContainer.flushPackets();
           }

           if (mVideoEncoder != null) {
               mVideoEncoder.close();
           }
       }
    }