Recherche avancée

Médias (91)

Autres articles (81)

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

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

Sur d’autres sites (4955)

  • ffmpeg : precisely cut a video

    19 octobre 2019, par Santhosh Yedidi

    I am tring to cut a video in linux OS

    $ ffmpeg -i dhol.mkv
    ffmpeg version n4.1.2 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 8.2.1 (GCC) 20181127
     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
     libavutil      56. 22.100 / 56. 22.100
     libavcodec     58. 35.100 / 58. 35.100
     libavformat    58. 20.100 / 58. 20.100
     libavdevice    58.  5.100 / 58.  5.100
     libavfilter     7. 40.101 /  7. 40.101
     libswscale      5.  3.100 /  5.  3.100
     libswresample   3.  3.100 /  3.  3.100
     libpostproc    55.  3.100 / 55.  3.100
    Input #0, matroska,webm, from 'dhol.mkv':
     Metadata:
       ENCODER         : Lavf58.20.100
     Duration: 00:03:56.18, start: -0.007000, bitrate: 2688 kb/s
       Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709/unknown/unknown), 1920x1080, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
       Metadata:
         DURATION        : 00:03:56.167000000
       Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
       Metadata:
         DURATION        : 00:03:56.181000000

    I was trying to precisely cut the video file :

    But using ffmpeg I was not successfull. It cuts from the nearest key frames to the given start time

    ffmpeg -y -i dhol.mkv -ss $shift   -t $duration -c:v copy -an output.mkv

    ONE OF THE REASONS HERE IS H.264 Video format (YUV420p vs YUV420sp). I am using -c:v copy so it has to use the same format YUV420p, so it has to start from nearest keyframe

    Now the only reliable software that i can fully depend if avidemux.

    Even in that i have to select

    video-codec: MJPEG
    audio-codec: vorbis

    But the cut video size will be large.

    I tried in avidemux

    video-codec: copy
    audio-codec: copy

    It will cut from nearest keyframe than precisely.

    One conclusion :
    So irrespective of ffmpeg or avidemux, the output video format yuv420p will not allow precise formatting

    Only option currently possible :

    Using avidemux and with

    video-codec: MJPEG
    audio-codec: vorbis

    Cons :

    1) bigger video size.
    2) no proper command line examples available for avidemux to do the same as gui does

    I tried command line in avidemux :

    avidemux3_cli --video-codec MJPEG --audio-codec AAC --output-format AVI --load dhol.mkv --begin 137.633 --end 141.334 --save dhol2.mkv

    It tries to convert the whole file rather than from the start to end time

    My requirement :
    I want to do it command line.

    I didnt try with ffmpeg (with video codec : MJPEG and audio : vorbis). I never saw any example

    How to precisely cut a video (even the output format can be different (like MJPEG instead of yuv420p, and also bigger sizes, its ok) using command line

  • ffmpeg faild when processing video from stream

    17 octobre 2019, par Milousel

    I create ffmpeg method for modify video from readstream as input. I test it on videos which I download from internet and it’s works good. When I tried it on video from my phone it crash. I tried to modify (take off few second) video from internet and try it again, but I receive the same error message.

    an error happened: ffmpeg exited with code 1: pipe:0: Invalid data found when processing input
    Cannot determine format of input stream 0:0 after EOF
    Error marking filters as finished
    Conversion failed!
    ffmpeg version N-92722-gf22fcd4483 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 8.2.1 (GCC) 20181201
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
     libavutil      56. 24.101 / 56. 24.101
     libavcodec     58. 42.102 / 58. 42.102
     libavformat    58. 24.101 / 58. 24.101
     libavdevice    58.  6.101 / 58.  6.101
     libavfilter     7. 46.101 /  7. 46.101
     libswscale      5.  4.100 /  5.  4.100
     libswresample   3.  4.100 /  3.  4.100
     libpostproc    55.  4.100 / 55.  4.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 000001c49b5ee3c0] stream 0, offset 0x20: partial file
    [mov,mp4,m4a,3gp,3g2,mj2 @ 000001c49b5ee3c0] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, 17079 kb/s): unspecified pixel format
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'pipe:0':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       creation_time   : 2019-10-17T11:32:34.000000Z
       location        : +50.1308+014.3730/
       location-eng    : +50.1308+014.3730/
       com.android.version: 7.0
     Duration: 00:00:10.77, start: 0.000000, bitrate: N/A
       Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, 17079 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
       Metadata:
         rotate          : 90
         creation_time   : 2019-10-17T11:32:34.000000Z
         handler_name    : VideoHandle
       Side data:
         displaymatrix: rotation of -90.00 degrees
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
       Metadata:
         creation_time   : 2019-10-17T11:32:34.000000Z
         handler_name    : SoundHandle
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
     Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
     Stream #0:0 -> #1:0 (h264 (native) -> mjpeg (native))
    [mov,mp4,m4a,3gp,3g2,mj2 @ 000001c49b5ee3c0] stream 0, offset 0x20: partial file
    pipe:0: Invalid data found when processing input
    Cannot determine format of input stream 0:0 after EOF
    Error marking filters as finished
    Conversion failed!
    ffmpeg(stream)
           .outputOptions('-movflags', 'faststart')
          // .size('1320x438')
           .videoCodec('libx264')
           .toFormat('avi')
           .output(fileName)
           .on('error', function(err: { message: string; }, stdout: any, stderr: any) {
             console.log('an error happened: ' + err.message + stdout + stderr);
            })
           .on('end', function() {
             console.log('Finished processing video');
             const params = {
               Body: fs.createReadStream(fileName),
               Bucket: videoBucket,
               Key: 'test/modification/' + fileName,
             };
             s3.putObject(params, (err, data) => {
               if (err) {
                 console.log(err);
               }
             });
           })
           .output(screensName + '.jpg')
           .outputOptions(
             '-frames',
             '1', // Capture just one frame of the video
             '-vf',
             'blackdetect=d=2:pix_th=0.00',
           )
           .on('end', function() {
             console.log('Finished processing screenshot');
             const params = {
               Body: fs.createReadStream(screensName + '.jpg'),
               Bucket: videoBucket,
               Key: 'test/shots/' + screensName + '.jpg',
             };
             s3.putObject(params, (err, data) => {
               if (err) {
                 console.log(err);
               }
             });
           })
           .run();
  • Are there differences between the parameters of different versions of ffmpeg ?

    13 octobre 2019, par Mauro Alejandro Pereira

    I want to obtain a different raw video for each frame of an MP4 file.
    My instruction works in an old version of ffmpeg but not in the new one.

    In the mp4 file there are 137 frames. It is checked. The versions are installed on different machines.

    Versions 2.8.15 :

    $ ffmpeg -i ./video.mp4 -vf fps=30 -vframes 137 -vcodec rawvideo -s '1920x1080' -pix_fmt gray -threads 0 frame%08d.raw
    ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
     configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
     libavutil      54. 31.100 / 54. 31.100
     libavcodec     56. 60.100 / 56. 60.100
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 40.101 /  5. 40.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './video.mp4':
      Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: mp41mp42
       creation_time   : 2019-03-11 16:16:54
     Duration: 00:00:04.57, start: 0.000000, bitrate: 14014 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 13816 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
       Metadata:
         creation_time   : 2019-03-11 16:16:54
         encoder         : AVC Coding
       Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
       Metadata:
         creation_time   : 2019-03-11 16:16:54
    Output #0, image2, to 'frame%08d.raw':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: mp41mp42
       encoder         : Lavf56.40.101
       Stream #0:0(eng): Video: rawvideo (Y800 / 0x30303859), gray, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
       Metadata:
         creation_time   : 2019-03-11 16:16:54
         encoder         : Lavc56.60.100 rawvideo
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
    Press [q] to stop, [?] for help
    frame=  137 fps= 73 q=-0.0 Lsize=N/A time=00:00:04.56 bitrate=N/A dup=1 drop=0    
    video:277425kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

    Version 4.1.4 :

    $ ffmpeg -i ./video.mp4 -vf fps=30 -vframes 137 -vcodec rawvideo -s '1920x1080' -pix_fmt gray -threads 0 frame%08d.raw
    ffmpeg version 4.1.4-1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 8 (Debian 8.3.0-6)
     configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
     libavutil      56. 22.100 / 56. 22.100
     libavcodec     58. 35.100 / 58. 35.100
     libavformat    58. 20.100 / 58. 20.100
     libavdevice    58.  5.100 / 58.  5.100
     libavfilter     7. 40.101 /  7. 40.101
     libavresample   4.  0.  0 /  4.  0.  0
     libswscale      5.  3.100 /  5.  3.100
     libswresample   3.  3.100 /  3.  3.100
     libpostproc    55.  3.100 / 55.  3.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x558d1a5bb880] st: 0 edit list: 1 Missing key frame while searching for timestamp: 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x558d1a5bb880] st: 0 edit list 1 Cannot find an index entry before timestamp: 0.
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: mp41mp42
       creation_time   : 2019-03-11T16:16:54.000000Z
     Duration: 00:00:04.57, start: 0.000000, bitrate: 14014 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 13816 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
       Metadata:
         creation_time   : 2019-03-11T16:16:54.000000Z
         encoder         : AVC Coding
       Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
       Metadata:
         creation_time   : 2019-03-11T16:16:54.000000Z
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
    Press [q] to stop, [?] for help
    Output #0, image2, to 'frame%08d.raw':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: mp41mp42
       encoder         : Lavf58.20.100
       Stream #0:0(eng): Video: rawvideo (Y800 / 0x30303859), gray,     1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 497664 kb/s, 30 fps, 30 tbn, 30 tbc (default)
       Metadata:
         creation_time   : 2019-03-11T16:16:54.000000Z
         encoder         : Lavc58.35.100 rawvideo
    frame=  136 fps= 25 q=-0.0 Lsize=N/A time=00:00:04.53 bitrate=N/A speed=0.834x    
    video:275400kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

    In the latest version, I expect 137 files but the amount is 136.