Recherche avancée

Médias (2)

Mot : - Tags -/map

Autres articles (45)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (9551)

  • How to get the thumbnail of base64 encoded video file in Nodejs ?

    3 octobre 2018, par Wai Yan Hein

    I am developing a web application using Nodejs. I am using Amazon S3 bucket to store files. What I am doing now is that when I upload a video file (mp4) to the S3 bucket, I will get the thumbnail photo of the video file from the lambda function. For fetching the thumbnail photo of the video file, I am using this package - https://www.npmjs.com/package/ffmpeg. I tested the package locally on my laptop and it is working.

    Here is my code tested on my laptop

    var ffmpeg = require('ffmpeg');

    module.exports.createVideoThumbnail = function(req, res)
    {
       try {
           var process = new ffmpeg('public/lalaland.mp4');
           process.then(function (video) {

               video.fnExtractFrameToJPG('public', {
                   frame_rate : 1,
                   number : 5,
                   file_name : 'my_frame_%t_%s'
               }, function (error, files) {
                   if (!error)
                       console.log('Frames: ' + files);
                   else
                       console.log(error)
               });

           }, function (err) {
               console.log('Error: ' + err);
           });
       } catch (e) {
           console.log(e.code);
           console.log(e.msg);
       }
       res.json({ status : true , message: "Video thumbnail created." });
    }

    The above code works well. It gave me the thumbnail photos of the video file (mp4). Now, I am trying to use that code in the AWS lambda function. The issue is the above code is using video file path as the parameter to fetch the thumbnails. In the lambda function, I can only fetch the base 64 encoded format of the file. I can get id (s3 path) of the file, but I cannot use it as the parameter (file path) to fetch the thumbnails as my s3 bucket does not allow public access.

    So, what I tried to do was that I tried to save the base 64 encoded video file locally in the lambda function project itself and then passed the file path as the parameter for fetching the thumbnails. But the issue was that AWS lamda function file system is read-only. So I cannot write any file to the file system. So what I am trying to do right now is to retrieve the thumbnails directly from the base 64 encoded video file. How can I do it ?

  • Transcode video with php ffmpeg library

    27 juin 2019, par dev

    I need to upload video in 3 formate/resolution as 360p, 480p, 720p.

    After some research i got to know that some paid service are there like Amazone Elastic Transcoder . But i want to do with open source so i found FFMPEG.

    Also i want to upload video on Amazon s3 after transcode and video are in big size like video may contain 1GB size.

    I got php library for FFMPEG Library Link

    I have installed ffmpeg and it successfully generate new video. But i cannot figure out that how can i generate different formate/resolution as 360p, 480p, 720p.

    My sample Code is

           error_reporting(E_ALL);
           ini_set('display_errors', 1);

           require 'vendor/autoload.php';

           //$ffmpeg = FFMpeg\FFMpeg::create();
           $video = $ffmpeg->open('assets/small.mp4');
           $video
               ->filters()
               ->resize(new FFMpeg\Coordinate\Dimension(320, 240))
               ->synchronize();
           $video
               ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(2))
               ->save('assets/frame.jpg');

           $format = new FFMpeg\Format\Video\X264();
           $format->setAudioCodec("libmp3lame");

           $video->save($format, 'assets/new.mp4');

    Can anyone suggest me any way that how can i achieve this ??

  • FFmpeg transcoding on Lambda results in unusable (static) audio

    17 mai 2020, par jmkmay

    I'd like to move towards serverless for audio transcoding routines in AWS. I've been trying to setup a Lambda function to do just that ; execute a static FFmpeg binary and re-upload the resulting audio file. The static binary I'm using is here.

    



    The Lambda function I'm using in Python looks like this :

    



    import boto3

s3client = boto3.client('s3')
s3resource = boto3.client('s3')

import json
import subprocess 

from io import BytesIO

import os

os.system("cp -ra ./bin/ffmpeg /tmp/")
os.system("chmod -R 775 /tmp")

def lambda_handler(event, context):

    bucketname = event["Records"][0]["s3"]["bucket"]["name"]
    filename = event["Records"][0]["s3"]["object"]["key"]

    audioData = grabFromS3(bucketname, filename)

    with open('/tmp/' + filename, 'wb') as f:
        f.write(audioData.read())

    os.chdir('/tmp/')

    try:
        process = subprocess.check_output(['./ffmpeg -i /tmp/joe_and_bill.wav /tmp/joe_and_bill.aac'], shell=True, stderr=subprocess.STDOUT)
        pushToS3(bucketname, filename)
        return process.decode('utf-8')
    except subprocess.CalledProcessError as e:
        return e.output.decode('utf-8'), os.listdir()


def grabFromS3(bucket, file):

    obj = s3client.get_object(Bucket=bucket, Key=file)
    data = BytesIO(obj['Body'].read())

    return(data)

def pushToS3(bucket, file):

    s3client.upload_file('/tmp/' + file[:-4] + '.aac', bucket, file[:-4] + '.aac')

    return


    



    You can listen to the output of this here. WARNING : Turn your volume down or your ears will bleed.

    



    The original file can be heard here.

    



    Does anyone have any idea what might be causing the encoding errors ? It doesn't seem to be an issue with the file upload, since the md5 on the Lambda fs matches the MD5 of the uploaded file.

    



    I've also tried building the static binary on an Amazon Linux instance in EC2, then zipping and porting it into the Lambda project, but the same issue persists.

    



    I'm stumped ! :(