Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (76)

  • Les sons

    15 mai 2013, par
  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (10098)

  • Metadata in mp3 not working when piping from ffmpeg with album art

    10 février 2019, par Cromon

    In my program I am piping a webm from a stream to ffmpeg and then pipe the output to a http request. Part of the process is adding metadata for the mp3. This has so far worked great. However after adding an image as album art it has started to act unexpected.

    First this is the command line I am using inside the program :

       val parameters = listOf("ffmpeg",
               "-i", "-",
               "-i", albumImage.absolutePath,
               "-map", "0",
               "-map", "1",
               "-c:v", "copy",
               "-f", "mp3",
               "-id3v2_version", "4",
               "-metadata", "title=${info.title}",
               "-metadata", "album=YouTube",
               "-metadata", "artist=${info.author}",
               "-metadata:s:v", "title=Album Cover",
               "-metadata:s:v", "comment=Cover (front)",
               "-"
       )

    It creates a valid mp3 file and I can find both the metadata and the image in the mp3 file, however when playing it none of them are displayed in VLC or anywhere else. To test various configurations I have converted it to the command line.

    In a first try I have saved the video and the image and stopped using pipes altogether, which results in this :

    ffmpeg -i video.webm -i image.jpeg -map 0 -map 1 -c:v copy -f mp3 -id3v2_version 4 -metadata title="Tiësto & KSHMR feat. Vassy - Secrets (Official Music Video)" -metadata album="YouTube" -metadata artist="Spinnin' Records" -metadata:s:v title="Album Cover" -metadata:s:v comment="Cover (front)" output3.mp3

    In this case all metadata including the album art is displayed in VLC.

    I then recreated the same thing as in my program, piping both video input and audio output, looking like this :

    ffmpeg -i - -i image.jpeg -map 0 -map 1 -c:v copy -f mp3 -id3v2_version 4 -metadata title="Tiësto & KSHMR feat. Vassy - Secrets (Official Music Video)" -metadata album="YouTube" -metadata artist="Spinnin' Records" -metadata:s:v title="Album Cover" -metadata:s:v comment="Cover (front)" - < video.webm > output3.mp3

    This file is the same as my programs output. Neither title nor album nor album image are displayed (however it can play the file)

    To test a few more options I have hardcoded the output file but pipe the input file like this :

    ffmpeg -i - -i image.jpeg -map 0 -map 1 -c:v copy -f mp3 -id3v2_version 4 -metadata title="Tiësto & KSHMR feat. Vassy - Secrets (Official Music Video)" -metadata album="YouTube" -metadata artist="Spinnin’ Records" -metadata:s:v title="Album Cover" -metadata:s:v comment="Cover (front)" output3.mp3 < video.webm

    Now the metadata is working again. When hardcoding the input video and piping the output, its again gone.

    So to sum up : When piping the output of ffmpeg the metadata in the file is not properly working. Interestingly the stderr output of ffmpeg looks quite similar

    Hardcoded output3.mp3 :

    ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
    Input #0, matroska,webm, from 'pipe:':
     Metadata:
       encoder         : google/video-file
     Duration: 00:03:39.58, start: -0.007000, bitrate: N/A
       Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Input #1, image2, from 'image.jpeg':
     Duration: 00:00:00.04, start: 0.000000, bitrate: 1466 kb/s
       Stream #1:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 320x180, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (opus (native) -> mp3 (libmp3lame))
     Stream #1:0 -> #0:1 (copy)
    Output #0, mp3, to 'output3.mp3':
     Metadata:
       TPE1            : Spinnin' Records
       TIT2            : Tiësto &amp; KSHMR feat. Vassy - Secrets (Official Music Video)
       TALB            : YouTube
       TSSE            : Lavf57.83.100
       Stream #0:0(eng): Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp (default)
       Metadata:
         encoder         : Lavc57.107.100 libmp3lame
       Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 320x180, q=2-31, 25 tbr, 25 tbn, 25 tbc
       Metadata:
         title           : Album Cover
         comment         : Cover (front)

    With pipe output :

    ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
    Input #0, matroska,webm, from 'pipe:':
     Metadata:
       encoder         : google/video-file
     Duration: 00:03:39.58, start: -0.007000, bitrate: N/A
       Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Input #1, image2, from 'image.jpeg':
     Duration: 00:00:00.04, start: 0.000000, bitrate: 1466 kb/s
       Stream #1:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 320x180, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (opus (native) -> mp3 (libmp3lame))
     Stream #1:0 -> #0:1 (copy)
    Output #0, mp3, to 'pipe:':
     Metadata:
       TPE1            : Spinnin' Records
       TIT2            : Tiësto &amp; KSHMR feat. Vassy - Secrets (Official Music Video)
       TALB            : YouTube
       TSSE            : Lavf57.83.100
       Stream #0:0(eng): Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp (default)
       Metadata:
         encoder         : Lavc57.107.100 libmp3lame
       Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 320x180, q=2-31, 25 tbr, 25 tbn, 25 tbc
       Metadata:
         title           : Album Cover
         comment         : Cover (front)
  • Cannot access video in node buffer

    21 avril 2016, par user2792129

    Within my aws-lambda function, I’m trying take a snapshot of the first frame of an mp4 video that I uploaded. I’m using node-fluent-ffmpeg to do this. My logs say its not recognizing the source. So I logged the source (response.Body) and I got this :

    <buffer 00="00" 14="14" 66="66" 74="74" 79="79" 70="70" 71="71" 20="20" 08="08" 77="77" 69="69" 64="64" 65="65" 36="36" fc="fc" 6d="6d" 61="61" cc="cc" 40="40" 07="07" 01="01" 02="02" 99="99" 3d="3d" b7="b7" 51="51" 9a="9a" 2a="2a" 2c="2c" 8b="8b">
    </buffer>

    Can I access the buffer directly, or Is there a way i should be formatting this before I try to use it in this ffmpeg method ?

       // Download the video from S3, get thumbnail, and upload to a different S3 bucket.
        async.waterfall([
               function download(next) {
                   // Download the video from S3 into a buffer.
                   s3.getObject({
                           Bucket: srcBucket,
                           Key: srcKey
                       },
                       next);
                   },
               function snapshot(response, next) {
                   console.log('response.Body-------------------> ', response.Body);
                   // Get the first frame of the video and write it to tempDir
                   var proc = new ffmpeg(response.Body)
                     .takeScreenshots({
                         count: 1,
                         timemarks: [ '2' ] // number of seconds
                       }, tempDir, function(err) {
                       console.log('screenshots were saved')
                     });

                   },
               function transform(response, next) {
                   gm(tempDir).size(function(err, size) {
                       // Infer the scaling factor to avoid stretching the image unnaturally.
                       WIDTH = size.width;
                       HEIGHT = size.height;


                       if (WIDTH > HEIGHT) {
                           var side = HEIGHT;
                       }
                       else{
                           var side = WIDTH;
                       }

                       var scalingFactor = Math.min(
                                       MAX_WIDTH / side,
                                       MAX_HEIGHT / side
                                   );
                                   var width  = scalingFactor * side;
                                   var height = scalingFactor * side;

                       // Transform the image buffer in memory.
                       this.gravity("Center").crop(side, side).resize(width, height)
                           .toBuffer(imageType, function(err, buffer) {
                               if (err) {
                                   next(err);
                                   console.log(err);
                               } else {
                                   next(null, response.ContentType, buffer);

                               }
                           });


                   });
               },
               function upload(contentType, data, next) {
                   // Stream the transformed image to a different S3 bucket.
                   s3.putObject({
                           Bucket: dstBucket,
                           Key: dstKey,
                           Body: data,
                           ContentType: contentType
                       },
                       next);
               }
               ], function (err) {
                   if (err) {
                       console.error(
                           'Unable to resize ' + srcBucket + '/' + srcKey +
                           ' and upload to ' + dstBucket + '/' + dstKey +
                           ' due to an error: ' + err
                       );
                   } else {
                       console.log(
                           'Successfully resized ' + srcBucket + '/' + srcKey +
                           ' and uploaded to ' + dstBucket + '/' + dstKey
                       );
                   }

                   callback(null, "message");
               }


           );

    Heres my log if that helps :

    enter image description here

  • Revision 33980 : Passage en version 1.2 de Zpip : layout.html devient structure.html ...

    27 décembre 2009, par cedric@… — Log

    Passage en version 1.2 de Zpip : layout.html devient structure.html body-layout.html devient body.html