Recherche avancée

Médias (91)

Autres articles (100)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (8784)

  • AWS Lambda and Fluent FFMPEG error "cannot read property "isStream" of undefined"

    29 mai 2021, par Travis Lee

    so here's the goal : convert a .webm file hosted in an S3 into a gif and upload that to a new bucket. This all works fine when run locally, but when trying to translate it into a lambda, fluent-ffmpeg throws errors when it runs the command.

    


    Here's the code snippet :

    


    ffmpeg(new URL(vid))
  .outputOptions("-vf", "scale=320:-1:flags=lanczos,fps=14")
  .on('progress', () => {
      console.log('progress');
  })
  .on('end', () => {
     //Do stuff with the result when it is done
  })
  .output(newKey)
  .run(newKey);


    


    in this snippet, "vid" is a presigned GET url for an S3 bucket containing the .webm video file, and "newKey" is the name of the new bucket (and a temporary writeStream/File that is created in the lambda to store the new .gif file until we upload it to S3 - not super relevant to this issue).

    


    What should happen (and does locally) is that a new output is created containing the converted .gif file

    


    What happens when it is deployed in a lambda is that it reaches the .outputOptions call and throws a type error saying that it cannot read property isStream of undefined.

    


    At first glance, this seems like I simply don't have FFMPEG installed in the lambda, but I do. I have tried with the prebuilt layer using NodeJS 10 found here : https://serverlessrepo.aws.amazon.com/applications/us-east-1/145266761615/ffmpeg-lambda-layer ,
with a NodeJS 12 layer that was built by some engineers here previously, and tried building a NodeJS 14 FFMPEG layer myself and using that. I tried for all three using no configuration and letting it call the PATH ffmpeg, using the FFMPEG_PATH and FFPROBE_PATH environment variables set to either what was specified in the previous layers, or what I made it in the newly built one, and even manually setting the path to the executables using the setFfmpegPath and setFfprobePath functions found on the fluent-ffmpeg object.

    


    Lastly, I even tried bundling the executables in with the actual lambda code itself and uploading it through an S3, trying all three above methods of getting it to point to the correct paths once again to no avail.

    


    I'm seriously in need of help if anyone else has encountered something similar or just might know what is going on. I'm at wit's end here trying to figure this out.

    


  • Extract thumbnail from video in amazon s3 and store it in amazon s3 [closed]

    24 juin 2021, par Kanav Raina

    I want to extract thumbnail from video and store it on s3.

    


    import ffmpeg

url="https://link_to_s3_video.mp4"

(
    ffmpeg
    .input(url, ss='00:00:03')  
    .output("frame.png", pix_fmt='rgb24', frames='1')  
    .overwrite_output()
    .run()
)


    


    I am able to extract image but now how should I pass this image to file_upload function and store it on s3

    


    def file_upload(file, filename):
    link = f"https://{PUBLIC_BUCKET_NAME}.s3.us-east-2.amazonaws.com/images/{filename}"
    try:
        s3.Object(PUBLIC_BUCKET_NAME, f"images/{filename}").load()
    except ClientError as e:
        if e.response['Error']['Code'] == "404":
            try:
                s3_client.upload_fileobj(
                    file,
                    PUBLIC_BUCKET_NAME,
                    f"images/{filename}",
                    ExtraArgs={'ACL': 'public-read'}
                )

                return 200, link
            except ClientError as e:
                logging.error(e)
                return 500, ""
        else:
            return 500, ""
    else:
        return 409, link


    


    Thanks

    


  • How to fix a webm file without audio ?

    14 juillet 2022, par John

    I use mediarecorder to record video and audio from a user's browser. We record every 15 seconds and then upload that blog to S3. Then we combine all the files together to make one webm file. I believe the first file isn't right because when I combine the files, there is not any audio - only video.

    


    Is there a way to alter the headers in the first file to use the audio in all of the subsequent files ? OR is there an FFMPEG command to force using the audio ? I know they exist in the other files.

    


    I don't believe this is important but here is the code that I use to save and combine the webm blobs.

    


    First I save the blobs from the media recorder

    


      recorder = new MediaRecorder(local_media_stream.remoteStream, {
               mimeType: encoding_options,
               audioBitsPerSecond: 96000,
               videoBitsPerSecond: bits_per_second,
            });
  recorder.ondataavailable = function(e) {
          that.save_blob(e.data, blob_index);      
         }


    


    Then later I combine each of those blobs.

    


    bucket = Aws::S3::Resource.new(region:'us-east-1').bucket("files")

keys = bucket.objects(prefix: "files").collect(&:key)

temp_webm_file = Tempfile.new(['total', '.webm'])
keys.each_with_index do |key, index|
    temp_webm_file.write bucket.object(key).get.body.read
end
temp_webm_file.close()


    


    One thing I know that fixes the issue is if I combine a short webm file with audio to the very beginning. Then the audio all works.