Recherche avancée

Médias (91)

Autres articles (61)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Emballe Médias : Mettre en ligne simplement des documents

    29 octobre 2010, par

    Le plugin emballe médias a été développé principalement pour la distribution mediaSPIP mais est également utilisé dans d’autres projets proches comme géodiversité par exemple. Plugins nécessaires et compatibles
    Pour fonctionner ce plugin nécessite que d’autres plugins soient installés : CFG Saisies SPIP Bonux Diogène swfupload jqueryui
    D’autres plugins peuvent être utilisés en complément afin d’améliorer ses capacités : Ancres douces Légendes photo_infos spipmotion (...)

  • Prérequis à l’installation

    31 janvier 2010, par

    Préambule
    Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
    Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
    Il (...)

Sur d’autres sites (6427)

  • Rails FFMPEG - convert to webm gives error for encoder 'libvpx-vp9'

    7 mai 2019, par Milind

    I am testing video conversion to convert video file into mp4 and webm.
    I have also setup ffmpeg and compiled properly.Mp4 conversion succeeds but webm breaks always complaining as -

    The encoder 'libvpx-vp9' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

    its strange as I aready have vp8 present -

    mike1011:~/workspace (s1) $ ffmpeg -encoders | grep -i vp
    ffmpeg version git-2016-03-29-bf1495d Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
     configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3
     libavutil      55. 19.100 / 55. 19.100
     libavcodec     57. 32.100 / 57. 32.100
     libavformat    57. 29.101 / 57. 29.101
     libavdevice    57.  0.101 / 57.  0.101
     libavfilter     6. 40.102 /  6. 40.102
     libswscale      4.  0.100 /  4.  0.100
     libswresample   2.  0.101 /  2.  0.101
     libpostproc    54.  0.100 / 54.  0.100
    V..... libvpx               libvpx VP8 (codec vp8)
    V..X.. libvpx-vp9           libvpx VP9 (codec vp9)
    V..... wrapped_avframe      AVFrame to AVPacket passthrough
    A..... wavpack              WavPack

    my model..video.rb looks like -

    has_attached_file :video,
      :styles => {
         :mp4video => { :geometry => '1280x720>', :format => 'mp4',
           :convert_options => { :output => { :vcodec => 'libx264', :movflags => '+faststart',  :strict => :experimental} } },
         :webmvideo => { :geometry => '1280x720>', :format => 'webm',
           :convert_options => { :output => { :vcodec => 'libvpx-vp9'} } },
         :oggvideo => { :geometry => '1280x720>', :format => 'ogg',
           :convert_options => { :output => { :vcodec => 'libtheora',
             :acodec => 'libvorbis',  :strict => :experimental } } },
         screenshot: { geometry: '640x480#',  :convert_options => {
           :output => { :vframes => 1, :s => '300x169', :ss => '00:00:02'} } }
       },    
       :processors => [:transcoder],
        ###other setting comes here

     ##using delayed-paperclip for background processing of videos
     process_in_background :video

     def process_delayed!
       unless self.video.job_is_processing
         self.video.job_is_processing = true
         self.video.post_processing = true
         self.video.reprocess!
         self.video.job_is_processing = false
       end  
     end  

    I am sharing my complete output below(with error highlighted :)) -

       2.4.1 :003 > v=Video.find 25
         Video Load (1.8ms)  SELECT  "videos".* FROM "videos" WHERE "videos"."id" = $1 LIMIT 1  [["id", 25]]
        => #<video></video>mp4", video_file_size: 1105773, video_updated_at: "2019-02-02 00:17:37", duration: 18.112, slug: "sample320-mp4-dbb96526-5db1-4c59-9152-615fc077eca7", active: true, created_at: "2019-02-02 00:17:37", updated_at: "2019-02-02 00:17:37", video_processing: true>
       2.4.1 :004 > v.process_delayed!
       [paperclip] copying /videos/25/original/Sample320.mp4 to local file /tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4
       [paperclip] Trying to link /tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4 to /tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1qmn2uk.mp4
       I, [2019-02-03T00:12:09.849885 #677953]  INFO -- : Running transcoding...
       ["/usr/local/bin/ffmpeg", "-y", "-i", "/tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4", "-s", "360x240", "-aspect", "1.5", "/tmp/2f51a6ecbce019dcad28a46b5be980ec20190203-677953-rh2lh0.mp4"]

       I, [2019-02-03T00:12:16.060391 #677953]  INFO -- : Transcoding of /tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4 to /tmp/2f51a6ecbce019dcad28a46b5be980ec20190203-677953-rh2lh0.mp4 succeeded

       [paperclip] Trying to link /tmp/2f51a6ecbce019dcad28a46b5be980ec20190203-677953-rh2lh0.mp4 to /tmp/2961027361de4afbbb86f7764a034ee020190203-677953-1g0vvwe.mp4
       I, [2019-02-03T00:12:16.082499 #677953]  INFO -- : Running transcoding...
       ["/usr/local/bin/ffmpeg", "-y", "-i", "/tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4", "-s", "360x240", "-aspect", "1.5", "/tmp/2f51a6ecbce019dcad28a46b5be980ec20190203-677953-fv3pzs.webm"]

       E, [2019-02-03T00:12:16.202420 #677953] ERROR -- : Failed encoding...
       ["/usr/local/bin/ffmpeg", "-y", "-i", "/tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4", "-s", "360x240", "-aspect", "1.5", "/tmp/2f51a6ecbce019dcad28a46b5be980ec20190203-677953-fv3pzs.webm"]

       ffmpeg version git-2016-03-29-bf1495d Copyright (c) 2000-2016 the FFmpeg developers
         built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
         configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3
         libavutil      55. 19.100 / 55. 19.100
         libavcodec     57. 32.100 / 57. 32.100
         libavformat    57. 29.101 / 57. 29.101
         libavdevice    57.  0.101 / 57.  0.101
         libavfilter     6. 40.102 /  6. 40.102
         libswscale      4.  0.100 /  4.  0.100
         libswresample   2.  0.101 /  2.  0.101
         libpostproc    54.  0.100 / 54.  0.100
       Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1.mp4':
         Metadata:
           major_brand     : isom
           minor_version   : 512
           compatible_brands: isomiso2avc1mp41
           encoder         : Lavf57.76.100
         Duration: 00:00:18.11, start: 0.000000, bitrate: 488 kb/s
           Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 360x240 [SAR 32:27 DAR 16:9], 353 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
           Metadata:
             handler_name    : VideoHandler
           Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 129 kb/s (default)
           Metadata:
             handler_name    : SoundHandler

    XXXXXXXXXXXXXXXXXXXXXXXX====== HERE COMES THE ERROR========XXXXXXXXXXXX
       [libvpx-vp9 @ 0x3e3dec0] The encoder 'libvpx-vp9' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

       Errors: encoded file is invalid.

       Paperclip::Error: There was an error processing the transcoder for 6b5665997c56c12544e7069276f6660b20190203-677953-1jsw8d1
              ...
  • I have a problem withInvalid file index 1 in filtergraph description

    17 avril 2019, par Davide

    This is my code :

    ffmpeg -i wireframe-spendo.mov palette.png -filter_complex fps=25,scale=800:600:flags=lanczos[x],[x][1:v]paletteuse wireframe-spendo.gif

    but after then :

    ffmpeg -i wireframe-spendo.mov palette.png -filter_complex fps=25,scale=800:600:flags=lanczos[x],[x][1:v]paletteuse wireframe-spendo.gif
    ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
     built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr
     libavutil      56. 22.100 / 56. 22.100
     libavcodec     58. 35.100 / 58. 35.100
     libavformat    58. 20.100 / 58. 20.100
     libavdevice    58.  5.100 / 58.  5.100
     libavfilter     7. 40.101 /  7. 40.101
     libavresample   4.  0.  0 /  4.  0.  0
     libswscale      5.  3.100 /  5.  3.100
     libswresample   3.  3.100 /  3.  3.100
     libpostproc    55.  3.100 / 55.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'wireframe-spendo.mov':
     Metadata:
       major_brand     : qt  
       minor_version   : 0
       compatible_brands: qt  
       creation_time   : 2019-04-17T09:38:24.000000Z
       com.apple.quicktime.make: Apple
       com.apple.quicktime.model: iMac12,2
       com.apple.quicktime.software: Mac OS X 10.13.6 (17G6029)
       com.apple.quicktime.creationdate: 2019-04-17T11:37:00+0200
     Duration: 00:00:16.42, start: 0.000000, bitrate: 3170 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1476x1074 [SAR 1:1 DAR 246:179], 3163 kb/s, 60 fps, 60 tbr, 6k tbn, 12k tbc (default)
       Metadata:
         creation_time   : 2019-04-17T09:38:24.000000Z
         handler_name    : Core Media Video
         encoder         : H.264

    output terminal says :

    Invalid file index 1 in filtergraph description fps=25,scale=800:600:flags=lanczos[x],[x][1:v]paletteuse.
  • Allowing downloads of partial video files from Django

    18 janvier 2019, par DataVis

    I have a Django app that allows users to make/save ’clips’ of video files, that is keep timestamps of start and end times of video files to save in playlists. I would like users to be able to download clips (and playlists as well) they have saved.

    I have done quite a bit of research on the topic and have gotten ffmpeg working from my terminal to save partial clips (though I’ve struggled to figure out pathnames for using subprocess.call with ffmpeg), and I have also gotten moviepy working via the terminal to save partial clips.

    I’m struggling to figure out how to incorporate this into my Django app so that users can click a link and subsequently begin a download of a specific clip (or playlist). I believe I will want to use celery to avoid tying up the server but I’m not even to the point where I can offload a task as I can’t figure out how to :

    1. ’Clip’ the original, longer video file to make it shorter (do I need to make a local copy of a new file first ?).
    2. Send a response as a download to the user.

    Here is my models.py :

    class Match(models.Model):
       game_id = models.IntegerField(primary_key=True,
           validators=[MinValueValidator(1)],db_column="game_id")
       wide = models.FileField(upload_to='games/2018/',blank=True,null=True)

    class Playlist(models.Model):
           name = models.CharField(default='',null=True,blank=True,max_length=200)
           created_by = models.ForeignKey(User,related_name="playlists",on_delete=models.CASCADE)
           created =   models.DateTimeField(editable=False)
           modified =  models.DateTimeField()


           def save(self, *args, **kwargs):
               ''' On save, update timestamps '''
               if not self.id:
                   entries = Playlist.objects.order_by('-id')
                   try:
                       self.id = entries[0].id + 1
                   except IndexError:
                       # we don't have any PlaylistEntries yet, so we just start @ 0
                       self.id = 0
                   self.created = timezone.now()
               self.modified = timezone.now()

               return super(Playlist, self).save(*args, **kwargs)


       class Clip(models.Model):
           name =  models.CharField(default='',null=True,blank=True,max_length=200)
           game_id = models.ForeignKey(Match,related_name="clips",on_delete=models.CASCADE,
               db_column="game_id",null=True,blank=True)
           clipstart = models.IntegerField(null=True,blank=True)
           clipend = models.IntegerField(null=True,blank=True)
           playlist = models.ForeignKey(Playlist,related_name="clips",on_delete=models.CASCADE,
               db_column="playlist",null=True,blank=True)
           created_by = models.ForeignKey(User,related_name="clips",on_delete=models.CASCADE)
           created =   models.DateTimeField(editable=False)
           modified =  models.DateTimeField()
           duration = models.IntegerField(null=True,blank=True)

           def save(self, *args, **kwargs):
               ''' On save, update timestamps '''
               if not self.id:
                   entries = Clip.objects.order_by('-id')
                   try:
                       self.id = entries[0].id + 1
                   except IndexError:
                       # we don't have any PlaylistEntries yet, so we just start @ 0
                       self.id = 0
                   self.created = timezone.now()
               self.modified = timezone.now()
               self.duration = int(self.clipend) - int(self.clipstart)
               return super(Clip, self).save(*args, **kwargs)

    And views.py where I’m struggling (I’m not sure if I’m working with FileField properly etc) :

    from moviepy.editor import *
    def ClipDownload(request,pk,*args,**kwargs):

       this_clip = models.Clip.objects.filter(pk=pk)
       file_name = this_clip[0].game_id.wide

       p = VideoFileClip(file_name,audio=False).subclip(this_clip.clipstart,this_clip.clipend)

       response = HttpResponse(p, content_type='application/force-download')
       response['Content-Disposition'] = 'attachment; filename=%s' % this_clip.name
       response['Content-Length'] = os.path.getsize(file_name)
       return response

    The current code is not working, I’m getting the proper Clip but I’m not able to make a subclip of the FileField as I’m getting an attribute error :

    AttributeError: 'FieldFile' object has no attribute 'endswith'

    I would be very appreciative if someone can point me in the right direction to get the file downloading so I can move on to trying to incorporate it into celery ?