Recherche avancée

Médias (1)

Mot : - Tags -/lev manovitch

Autres articles (70)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (8830)

  • 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();
           }
       }
    }
  • Invoking ffmpeg command line from C#

    17 juillet 2014, par hyde

    I have a bunch of images in a directory that I want to make a video out of.

    For example the images could have the following path :

    C:\dirpath with spaces\a.tiff

    C:\dirpath with spaces\b.tif

    C:\dirpath with spaces\c.tif

    ...

    C:\dirpath with spaces\zzz.tif

    (the file names themselves do not have a pattern)

    And ffmpeg is invoked in the server (ASP.Net WebAPI) when a user submits a query.

    Right now I am having a hard time getting it to work because part of the problem might be how I am passing the file names to ffmpeg.

    The command I am using is :

    ffmpeg -y -pix_fmt rgb24 -s 640x540 -framerate 24 -i "C:\dirpath with spaces\a.tif" "C:\dirpath with spaces\b.tif" "C:\dirpath with spaces\c.tif" ... "C:\dirpath with spaces\zzz.tif" -an out.mp4

    The problem is that the resulting video is 0 seconds long and ffmpeg does not throw any error.

    My question is, is how do I make this work while working with a set of images using their full path, maybe using a wrapper library around it ?

  • Symfony PHP-FFMPEG (pulse00/ffmpeg-bundle) doesn't work

    8 juillet 2014, par harisK92

    I installed pulse00/ffmpeg-bundle

    and set it up like in documentation

    dubture_f_fmpeg:
       ffmpeg_binary:  C:\FFMPEG\bin\ffmpeg
       ffprobe_binary: C:\FFMPEG\bin\ffprobe

    But I got errors

    Unable to load FFProbe

    ..\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\Driver\FFProbeDriver.php at line 50

       try {
      }       return static::load($binaries, $logger, $configuration);
      catch (BinaryDriverExecutableNotFound $e) {
           throw new ExecutableNotFoundException('Unable to load FFProbe', $e->getCode(), $e);
       }
    }

    When I add .exe

    dubture_f_fmpeg:
       ffmpeg_binary:  C:\FFMPEG\bin\ffmpeg.exe
       ffprobe_binary: C:\FFMPEG\bin\ffprobe.exe

      Unable to probe C:\Users\XXX\XXX\ProjectFolder\src\vendor\Bundle\Entity/../../../../web/uploads/videos/e4cbef010c42d819fd6c326011fb2434c4b43c68.mp4

    Code in my controller

    private  function getThumbnail(Video $videoObject)
       {
           $ffmpeg=$this->getFFMPEG();
           $video=$ffmpeg->open($videoObject->getAbsolutePath());
           $video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
                 ->save($videoObject->getImagesUploadDir().'/'."image.jpg");

       }