Recherche avancée

Médias (0)

Mot : - Tags -/médias

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

Autres articles (68)

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

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (7503)

  • 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;