Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (35)

  • 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

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (7373)

  • Transcode video using celery and ffmpeg in django

    28 octobre 2015, par Robin

    I would like to transcode user uploaded videos using celery. I think first I should upload the video, and spawn a celery task for transcoding.

    Maybe something like this in the tasks.py :

    subprocess.call('ffmpeg -i path/.../original path/.../output')

    Just completed First steps with celery, so confused how to do so in the views.py and tasks.py. Also is it a good solution ? I would really appreciate your help and advice. Thank you.

    models.py :

    class Video(models.Model):
       user = models.ForeignKey(User)
       title = models.CharField(max_length=100)
       original = models.FileField(upload_to=get_upload_file_name)
       mp4_480 = models.FileField(upload_to=get_upload_file_name, blank=True, null=True)
       mp4_720 = models.FileField(upload_to=get_upload_file_name, blank=True, null=True)
       privacy = models.CharField(max_length=1,choices=PRIVACY, default='F')
       pub_date = models.DateTimeField(auto_now_add=True, auto_now=False)

    my incomplete views.py :

    @login_required
    def upload_video(request):
       if request.method == 'POST':
           form = VideoForm(request.POST, request.FILES)
           if form.is_valid():
               if form.cleaned_data:
                   user = request.user
                   #
                   #
                   # No IDEA WHAT TO DO NEXT
                   #
                   #
                   return HttpResponseRedirect('/')

       else:
           form = VideoForm()
           return render(request, 'upload_video.html', {
               'form':form
               })
  • Paperclip with heroku and paperclip, migration fails

    2 décembre 2013, par jdartland

    I have a created ruby on rails application and I'm using paperclip to handle my file uploads.
    Paperclip works just fine on my local machine. But my video upload stops working when I deploy to Heroku. Does anyone know whats going wrong. I also get an error when I try to upload a video which says that the video filename does not exist. The photo upload works but not the Video, I'm using paperclip iwth nested attributes and ffmpeg.

    Upload Error log :

    Paperclip::Error (Asset model missing required attr_accessor for 'video_file_name')
    2013-12-02T14:38:16.867747+00:00 app[web.1]: Paperclip::Error (Asset model missing required attr_accessor for 'video_file_name'):
    2013-12-02T14:38:16.867747+00:00 app[web.1]:   app/controllers/projects_controller.rb:60:in `block in update'
    2013-12-02T14:38:16.867747+00:00 app[web.1]:   app/controllers/projects_controller.rb:59:in `update'

    Here is my migration error :

    Migrating to AddAttachmentPhotoToAssets (20131021134721)
    ==  AddAttachmentPhotoToAssets: migrating =====================================
    -- change_table(:assets)
      -> 0.0273s
    ==  AddAttachmentPhotoToAssets: migrated (0.0276s) ============================

    Migrating to AddProjectIdToAssets (20131022082744)
    -- add_column(:assets, :project_id, :integer)
    PG::DuplicateColumn: ERROR:  column "project_id" of relation "assets" already exists
    : ALTER TABLE "assets" ADD COLUMN "project_id" integer
    -- add_column(:assets, :project_id, :integer)
    PG::DuplicateColumn: ERROR:  column "project_id" of relation "assets" already exists
    : ALTER TABLE "assets" ADD COLUMN "project_id" integer
    rake aborted!
    PG::DuplicateColumn: ERROR:  column "project_id" of relation "assets" already exists
    : ALTER TABLE "assets" ADD COLUMN "project_id" integer
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `exec'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `block in execute'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:425:in `block in log'
    /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:420:in `log'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:127:in `execute'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:360:in `add_column'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/schema_statements.rb:379:in `add_column'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:625:in `block in method_missing'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:597:in `block in say_with_time'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:597:in `say_with_time'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:617:in `method_missing'
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:383:in `method_missing'
    /app/db/migrate/20131022082744_add_project_id_to_assets.rb:2:in `'
    /app/db/migrate/20131022082744_add_project_id_to_assets.rb:1:in `<top>&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:718:in `load_migration&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:714:in `migration&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:708:in `disable_ddl_transaction&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:1012:in `use_transaction?&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:922:in `rescue in block in migrate&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:919:in `block in migrate&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate&#39;
    /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top>&#39;
    Tasks: TOP => db:migrate
    (See full trace by running task with --trace)
    </top></top>

    Here is my table :

    create_table "assets", force: true do |t|
       t.datetime "created_at"
       t.datetime "updated_at"
       t.string   "photo_file_name"
       t.string   "photo_content_type"
       t.integer  "photo_file_size"
       t.datetime "photo_updated_at"
       t.integer  "project_id"
       t.string   "video_file_name"
       t.string   "video_content_type"
       t.integer  "video_file_size"
       t.datetime "video_updated_at"
     end
    add_index "projects", ["permalink"], name: "index_projects_on_permalink", using: :btree

     create_table "settings", force: true do |t|
       t.string   "title"
       t.text     "description"
       t.text     "paragraph"
       t.datetime "created_at"
       t.datetime "updated_at"
       t.string   "photo_file_name"
       t.string   "photo_content_type"
       t.integer  "photo_file_size"
       t.datetime "photo_updated_at"
       t.string   "video_file_name"
       t.string   "video_content_type"
       t.integer  "video_file_size"
       t.datetime "video_updated_at"
     end

    Would gladly need some help ! :)

  • moviepy VideoFileClip IndexError : list index out of range, OSError : MoviePy error : failed to read the duration of file

    21 mai 2022, par Mohamed Medhat

    We are recording videos from the browser with the following encoding&#xA;'video/webm ; codecs="vp8, opus"', then we upload these videos to an AWS S3 bucket.&#xA;Our ML model works on these videos, and one of the models needs to extarct the audio and process it.&#xA;Here is a code snapit for extracting the audio

    &#xA;

    import speech_recognition as sr&#xA;import moviepy.editor as me&#xA;from denoise2 import denoise&#xA;from sentence_transformers import SentenceTransformer&#xA;from sklearn.metrics.pairwise import cosine_similarity&#xA;import math&#xA;&#xA;model_name = &#x27;bert-base-nli-mean-tokens&#x27;&#xA;model = SentenceTransformer(model_name)&#xA;&#xA;&#xA;class recomm:&#xA;    y = 0.0&#xA;&#xA;    def __init__(self, path, keywords):&#xA;        video_clip = me.VideoFileClip(r"{}".format(path))&#xA;        path2 = "y2.wav"&#xA;        video_clip.audio.write_audiofile(r"{}".format(path2), nbytes=2)&#xA;        recognizer = sr.Recognizer()&#xA;        """a = AudioSegment.from_wav(path2)&#xA;        a = a &#x2B; 5&#xA;        a.export(path2, "wav")"""&#xA;        audio_clip = sr.AudioFile("{}".format(path2))&#xA;        with audio_clip as source:&#xA;            audio_file = recognizer.record(source)&#xA;        sent = []&#xA;        result = ""&#xA;        try:&#xA;            result = recognizer.recognize_google(audio_file)&#xA;        except sr.UnknownValueError:&#xA;            print("Can not process audio ")&#xA;        if not result:&#xA;            self.y = 0&#xA;        else:&#xA;            print(result)&#xA;            sent.append(result)&#xA;            sent = sent &#x2B; keywords&#xA;            sent_vec3 = model.encode(sent)&#xA;            x = cosine_similarity(&#xA;                [sent_vec3[0]],&#xA;                sent_vec3[1:]&#xA;            )&#xA;            for i in range(len(x)):&#xA;                self.y = self.y &#x2B; x[0][i]&#xA;            self.y = (self.y / (len(sent) - 1)) * 1000.0&#xA;&#xA;    def res(self):&#xA;        if self.y &lt; 0:&#xA;            self.y = 0&#xA;        return self.y&#xA;

    &#xA;

    And that's the traceback,&#xA;the error occurred at this line

    &#xA;

    video_clip = me.VideoFileClip(r"{}".format(path))&#xA;

    &#xA;

    Traceback (most recent call last):&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/moviepy/video/io/ffmpeg_reader.py", line 286, in ffmpeg_parse_infos&#xA;match = re.findall("([0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9])", line)[0]&#xA;IndexError: list index out of range&#xA;&#xA;During handling of the above exception, another exception occurred:&#xA;&#xA;Traceback (most recent call last):&#xA;File "main.py", line 90, in&#xA;main()&#xA;File "main.py", line 85, in main&#xA;interviews_channel.start_consuming()&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 1865, in start_consuming&#xA;self._process_data_events(time_limit=None)&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 2026, in _process_data_events&#xA;self.connection.process_data_events(time_limit=time_limit)&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 833, in process_data_events&#xA;self._dispatch_channel_events()&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 567, in _dispatch_channel_events&#xA;impl_channel._get_cookie()._dispatch_events()&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 1492, in _dispatch_events&#xA;consumer_info.on_message_callback(self, evt.method,&#xA;File "main.py", line 79, in callback&#xA;processing(json.loads(body))&#xA;File "main.py", line 34, in processing&#xA;r = recomm(path, keywords)&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/recommendation.py", line 17, in init&#xA;video_clip = me.VideoFileClip(r"{}".format(path))&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/moviepy/video/io/VideoFileClip.py", line 88, in init&#xA;self.reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt,&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/moviepy/video/io/ffmpeg_reader.py", line 35, in init&#xA;infos = ffmpeg_parse_infos(filename, print_infos, check_duration,&#xA;File "/home/medo/Dev/Smart-remotely-interviewing-system/backend/Process-interview/test/lib/python3.8/site-packages/moviepy/video/io/ffmpeg_reader.py", line 289, in ffmpeg_parse_infos&#xA;raise IOError(("MoviePy error: failed to read the duration of file %s.\n"&#xA;OSError: MoviePy error: failed to read the duration of file 74b74292-3642-486a-8319-255bb7e7da5a-1647363285285.webm.&#xA;Here are the file infos returned by ffmpeg:&#xA;&#xA;ffmpeg version 4.2.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers&#xA;built with gcc 8 (Debian 8.3.0-6)&#xA;configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg&#xA;libavutil 56. 31.100 / 56. 31.100&#xA;libavcodec 58. 54.100 / 58. 54.100&#xA;libavformat 58. 29.100 / 58. 29.100&#xA;libavdevice 58. 8.100 / 58. 8.100&#xA;libavfilter 7. 57.100 / 7. 57.100&#xA;libswscale 5. 5.100 / 5. 5.100&#xA;libswresample 3. 5.100 / 3. 5.100&#xA;libpostproc 55. 5.100 / 55. 5.100&#xA;Input #0, matroska,webm, from &#x27;74b74292-3642-486a-8319-255bb7e7da5a-1647363285285.webm&#x27;:&#xA;Metadata:&#xA;encoder : Chrome&#xA;Duration: N/A, start: 0.000000, bitrate: N/A&#xA;Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)&#xA;Stream #0:1(eng): Video: vp8, yuv420p(progressive), 640x480, SAR 1:1 DAR 4:3, 29.42 fps, 29.42 tbr, 1k tbn, 1k tbc (default)&#xA;Metadata:&#xA;alpha_mode : 1&#xA;At least one output file must be specified&#xA;

    &#xA;