Recherche avancée

Médias (1)

Mot : - Tags -/stallman

Autres articles (75)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

Sur d’autres sites (10252)

  • JAVE (Java Audio Video Encoder) library exception only on Linux (CentOS 7)

    13 octobre 2017, par Linu Radu

    I’m using JAVE (Java Audio Video Encoder) library and the developed application is on windows.
    On windows the conversion of an .mp3 file is working fine but when I deployed on linux (CentOS 7) an exception is thrown.

    As I understand JAVE has also a wrapper around an ffmpeg executable.

    Here is my code :

    try {
           File source = new File(sourceFile);
           File target = new File(targetFile);

           final AudioAttributes audio = new AudioAttributes();
           audio.setCodec("libmp3lame");
           audio.setBitRate(88000);
           audio.setChannels(2);
           audio.setSamplingRate(44100);  

           EncodingAttributes attrs = new EncodingAttributes();
           attrs.setFormat("mp3");
           attrs.setAudioAttributes(audio);

           Encoder encoder = new Encoder();
           encoder.encode(source, target, attrs);
    } catch (EncoderException ex) {
       throw ex;
    }

    Exception :

    ...

    Caused by: it.sauronsoftware.jave.EncoderException: Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
       at it.sauronsoftware.jave.Encoder.encode(Encoder.java:926)
       at it.sauronsoftware.jave.Encoder.encode(Encoder.java:713)
       at com.hft2.ejb.util.Mp3JaveEncoder.encode(Mp3JaveEncoder.java:36)
       ... 206 more

    Update

    Here is the official page : http://www.sauronsoftware.it/projects/jave/

    Full exception log : https://jpst.it/1678l

    Does anyone have any idea ?

  • ffmpeg c++/cli wrapper for using in c# . AccessViolationException after call dll function by it's pointer

    4 octobre 2017, par skynet_v

    My target is to write a c++/cli wrap arount ffmpeg library, using by importing ffmpeg functions from dll-modules.
    Later I will use this interface in c#.
    This is my challenge, don’t ask me why))

    So i’ve implemented Wrap class, which is listed below :

    namespace FFMpegWrapLib
    {
       public class Wrap
       {
       private:

       public:
           //wstring libavcodecDllName = "avcodec-56.dll";
           //wstring libavformatDllName = "avformat-56.dll";
           //wstring libswscaleDllName = "swscale-3.dll";
           //wstring libavutilDllName = "avutil-54.dll";

           HMODULE libavcodecDLL;
           HMODULE libavformatDLL;
           HMODULE libswsscaleDLL;
           HMODULE libavutilDLL;

           AVFormatContext     **pFormatCtx = nullptr;
           AVCodecContext      *pCodecCtxOrig = nullptr;
           AVCodecContext      *pCodecCtx = nullptr;
           AVCodec             **pCodec = nullptr;
           AVFrame             **pFrame = nullptr;
           AVFrame             **pFrameRGB = nullptr;
           AVPacket            *packet = nullptr;
           int                 *frameFinished;
           int                 numBytes;
           uint8_t             *buffer = nullptr;
           struct SwsContext   *sws_ctx = nullptr;

           void                Init();
           void                AVRegisterAll();
           void                Release();
           bool                SaveFrame(const char *pFileName, AVFrame * frame, int w, int h);
           bool                GetStreamInfo();
           int                 FindVideoStream();
           bool                OpenInput(const char* file);
           AVCodec*            FindDecoder();
           AVCodecContext*     AllocContext3();
           bool                CopyContext();
           bool                OpenCodec2();
           AVFrame*            AllocFrame();
           int                 PictureGetSize();
           void*               Alloc(size_t size);
           int                 PictureFill(AVPicture *, const uint8_t *, enum AVPixelFormat, int, int);
           SwsContext*         GetSwsContext(int, int, enum AVPixelFormat, int, int, enum AVPixelFormat, int, SwsFilter *, SwsFilter *, const double *);
           int                 ReadFrame(AVFormatContext *s, AVPacket *pkt);
           int                 DecodeVideo2(AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, const AVPacket *avpkt);
           int                 SwsScale(struct SwsContext *c, const uint8_t *const srcSlice[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[]);
           void                PacketFree(AVPacket *pkt);
           void                BufferFree(void *ptr);
           void                FrameFree(AVFrame **frame);
           int                 CodecClose(AVCodecContext *);
           void                CloseInput(AVFormatContext **);
           bool                SeekFrame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags);

           Wrap();
           ~Wrap();

           bool                GetVideoFrame(char* str_in_file, char* str_out_img, uint64_t time);
       };

       public ref class managedWrap
       {
       public:

           managedWrap(){}
           ~managedWrap(){ delete unmanagedWrap; }

           bool GetVideoFrameToFile(char* str_in_file, char* str_out_img, uint64_t time)
           {
               return unmanagedWrap->GetVideoFrame(str_in_file, str_out_img, time);
           }

           static Wrap* unmanagedWrap = new Wrap();
       };
    }

    So the imports to libavcodec and etc. are succesful.
    The problem is in AccessViolationException during calling dll func, for example, in OpenInput (i.e. av_open_input in native ffmpeg library)

    The OpenInput func code is below :

    bool FFMpegWrapLib::Wrap::OpenInput(const char* file)
    {
       typedef int avformat_open_input(AVFormatContext **, const char *, AVInputFormat *, AVDictionary **);

       avformat_open_input* pavformat_open_input = (avformat_open_input *)GetProcAddress(libavformatDLL, "avformat_open_input");
       if (pavformat_open_input == nullptr)
       {
           throw exception("Unable to find avformat_open_input function address in libavformat module");
           return false;
       }

       //pin_ptr<avformatcontext> pinFormatContext = &amp;(new interior_ptr<avformatcontext>(pCodecCtx));
       pFormatCtx = new AVFormatContext*;
       //*pFormatCtx = new AVFormatContext;


       int ret = pavformat_open_input(pFormatCtx, file, NULL, NULL); // here it fails

       return ret == 0;
    }
    </avformatcontext></avformatcontext>

    So the problem, i think, is that class-fields of Wrap class are in secure memory. And ffmpeg works with native memory, initialising pFormatCtx variable by it’s address.
    Can I avoid this, or it is impossible ?

  • Matplotlib : ValueError : I/O operation on closed file [duplicate]

    28 septembre 2017, par gopi

    This question is an exact duplicate of :

    %matplotlib inline
    import math,os,sys,numpy as np
    from numpy.random import random
    from matplotlib import pyplot as plt, rcParams, animation, rc
    from __future__ import print_function, division
    from ipywidgets import interact, interactive, fixed
    from ipywidgets.widgets import *
    rc('animation', html='html5')
    rcParams['figure.figsize'] = 3,3
    %precision 4
    np.set_printoptions(precision=4, linewidth=100)

    def lin(a,x,b): return a * x + b

    a = 3.
    b = 8.
    n = 30

    x = random(n)
    y = lin(a,x,b)

    plt.scatter(x,y)

    def sse(y, y_pred): return ((y-y_pred)**2).sum()
    def loss(y, a, x, b): return sse(y, lin(a, x, b))
    def avg_loss(y, a, x, b): return np.sqrt(loss(y, a, x, b)/n)

    a_guess = -1
    b_guess = 1
    avg_loss(y, a_guess, x, b_guess)

    lr = 0.01
    #d[(y-(a*x+b))**2, b] = 2 (y_pred - y)
    #d[(y -(a*x+b)) **2, a] = x * dy/db

    def upd():
       global a_guess, b_guess
       y_pred = lin(a_guess, x, b_guess)
       dydb = 2 * (y_pred - y)
       dyda = x * dydb
       a_guess -= lr*dyda.mean()
       b_guess -= lr*dydb.mean()


    fig = plt.figure(dpi=100, figsize=(5,5))
    plt.scatter(x,y)
    line, = plt.plot(x, lin(a_guess, x, b_guess))
    plt.close()

    def animate(i):
       line.set_ydata(lin(a_guess, x, b_guess))
       for i in range(10): upd()
       return line,


    ani = animation.FuncAnimation(fig, animate, np.arange(0, 40), interval=100)
    ani

    But when I run it I get the following error,

       ValueError Traceback (most recent call last)
    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/IPython/core/formatters.pyc in __call__(self, obj)
       309             method = get_real_method(obj, self.print_method)
       310             if method is not None:
    --> 311                 return method()
       312             return None
       313         else:

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/matplotlib/animation.pyc in _repr_html_(self)
      1233         fmt = rcParams['animation.html']
      1234         if fmt == 'html5':
    -> 1235             return self.to_html5_video()
      1236
      1237

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/matplotlib/animation.pyc in to_html5_video(self)
      1207                                 bitrate=rcParams['animation.bitrate'],
      1208                                 fps=1000. / self._interval)
    -> 1209                 self.save(f.name, writer=writer)
      1210
      1211             # Now open and base64 encode

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/matplotlib/animation.pyc in save(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs)
      1061                         # TODO: See if turning off blit is really necessary
      1062                         anim._draw_next_frame(d, blit=False)
    -> 1063                     writer.grab_frame(**savefig_kwargs)
      1064
      1065         # Reconnect signal for first draw if necessary

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/contextlib.pyc in __exit__(self, type, value, traceback)
        33                 value = type()
        34             try:
    ---> 35                 self.gen.throw(type, value, traceback)
        36                 raise RuntimeError("generator didn't stop after throw()")
        37             except StopIteration, exc:

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/matplotlib/animation.pyc in saving(self, *args, **kw)
       287             yield self
       288         finally:
    --> 289             self.finish()
       290
       291     def _run(self):

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/matplotlib/animation.pyc in finish(self)
       307     def finish(self):
       308         'Finish any processing for writing the movie.'
    --> 309         self.cleanup()
       310
       311     def grab_frame(self, **savefig_kwargs):

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/matplotlib/animation.pyc in cleanup(self)
       346     def cleanup(self):
       347         'Clean-up and collect the process used to write the movie file.'
    --> 348         out, err = self._proc.communicate()
       349         self._frame_sink().close()
       350         verbose.report('MovieWriter -- '

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/subprocess32.pyc in communicate(self, input, timeout)
       925
       926         try:
    --> 927             stdout, stderr = self._communicate(input, endtime, timeout)
       928         finally:
       929             self._communication_started = True

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/subprocess32.pyc in _communicate(self, input, endtime, orig_timeout)
      1711             if _has_poll:
      1712                 stdout, stderr = self._communicate_with_poll(input, endtime,
    -> 1713                                                              orig_timeout)
      1714             else:
      1715                 stdout, stderr = self._communicate_with_select(input, endtime,

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/subprocess32.pyc in _communicate_with_poll(self, input, endtime, orig_timeout)
      1767             select_POLLIN_POLLPRI = select.POLLIN | select.POLLPRI
      1768             if self.stdout:
    -> 1769                 register_and_append(self.stdout, select_POLLIN_POLLPRI)
      1770                 stdout = self._fd2output[self.stdout.fileno()]
      1771             if self.stderr:

    /home/gopinath/Workspace/anaconda3/envs/py27/lib/python2.7/site-packages/subprocess32.pyc in register_and_append(file_obj, eventmask)
      1746             poller = select.poll()
      1747             def register_and_append(file_obj, eventmask):
    -> 1748                 poller.register(file_obj.fileno(), eventmask)
      1749                 self._fd2file[file_obj.fileno()] = file_obj
      1750

    ValueError: I/O operation on closed file

    I almost tried everywhere and I couldn’t find a solution, I tried reinstalling ffmpeg from the sources, moved this file to the folder where I installed ffmpeg and gave a try.

    I’m using python 3.5,
    Ubuntu 16.04
    Anaconda 4.4
    Matplotlib 2.02

    actually this particular course was taught using python 2.7 so I created a virenv installed 2.7 along with all related dependencies. So will it be the problem ?? I mean using python 2.7 on top of 3.5 ?