Recherche avancée

Médias (91)

Autres articles (30)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (3915)

  • How can I determine the resolution of incoming RTMP streams with ffmpeg ?

    12 mars 2019, par toastedDeli

    I’m using ffmpeg to transcode RTMP from my own RTMP server into HLS ready H.264. At the moment, I’m executing a command of the following form

    ffmpeg -i rtmp://<ip>:<port> <options for="for" 480p="480p"> <options for="for" 720p30="720p30"> <options for="for" 720p60="720p60"> <options for="for" 1080p="1080p">
    </options></options></options></options></port></ip>

    This is causing me to attempt to transcode lower resolutions to higher resolutions.

    The RTMP server I’m using is nginx with RTMP module

    Is there a way I can determine the source resolution, so that I only transcode into resolutions smaller than the source one ?

  • ffmpeg determine correct codec to use

    8 avril 2020, par nha

    I am trying to use .y4m files that I feed into Chrome for playing.&#xA;This is the only format that I can use.

    &#xA;&#xA;

    I have a set of .y4m files that are working for my use case, taken from here.&#xA;For example let's say that I use the file mobile_qcif_7.5fps.y4m.

    &#xA;&#xA;

    I also have a .mp4 file (specifically the sample small.mp4 file from techslides ). I know how to convert small.mp4 to small.y4m with the following command :

    &#xA;&#xA;

    ffmpeg -y -i small.mp4 small.y4m

    &#xA;&#xA;

    I would like the resulting file to be accepted by Chrome, just like the other file.&#xA;What options should I use (and how to find them) ?

    &#xA;&#xA;

    Additional information

    &#xA;&#xA;

    ffprobe gives :

    &#xA;&#xA;

    $ ffprobe small.y4m &#xA;avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers&#xA;  built on Jul 15 2014 13:48:35 with gcc 4.8.1&#xA;[yuv4mpegpipe @ 0x23160c0] Estimating duration from bitrate, this may be inaccurate&#xA;Input #0, yuv4mpegpipe, from &#x27;small.y4m&#x27;:&#xA;  Duration: N/A, bitrate: N/A&#xA;    Stream #0.0: Video: rawvideo, yuv420p, 560x320, 30 fps, 30 tbr, 30 tbn, 30 tbc&#xA;&#xA;&#xA;$ ffprobe mobile_qcif_7.5fps.y4m&#xA;avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers&#xA;  built on Jul 15 2014 13:48:35 with gcc 4.8.1&#xA;[yuv4mpegpipe @ 0x1e080c0] max_analyze_duration reached&#xA;[yuv4mpegpipe @ 0x1e080c0] Estimating duration from bitrate, this may be inaccurate&#xA;Input #0, yuv4mpegpipe, from &#x27;mobile_qcif_7.5fps.y4m&#x27;:&#xA;  Duration: N/A, bitrate: N/A&#xA;    Stream #0.0: Video: rawvideo, yuv420p, 176x144, PAR 128:117 DAR 1408:1053, 7.50 fps, 7.50 tbr, 7.50 tbn, 7.50 tbc&#xA;

    &#xA;&#xA;

    OS : I am using ffmpeg in Ubuntu 13.10 from the default repository : I ran sudo apt-get install ffmpeg libavcodec-extra-53

    &#xA;&#xA;

    Complete console output

    &#xA;&#xA;

    $ ffmpeg -y -i small.mp4 small.y4m&#xA;ffmpeg version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2000-2014 the Libav developers&#xA;  built on Jul 15 2014 13:48:35 with gcc 4.8.1&#xA;*** THIS PROGRAM IS DEPRECATED ***&#xA;This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;small.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : mp42&#xA;    minor_version   : 0&#xA;    compatible_brands: mp42isomavc1&#xA;    creation_time   : 2010-03-20 21:29:11&#xA;    encoder         : HandBrake 0.9.4 2009112300&#xA;  Duration: 00:00:05.56, start: 0.000000, bitrate: 551 kb/s&#xA;    Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc&#xA;    Metadata:&#xA;      creation_time   : 2010-03-20 21:29:11&#xA;    Stream #0.1(eng): Audio: aac, 48000 Hz, mono, s16, 83 kb/s&#xA;    Metadata:&#xA;      creation_time   : 2010-03-20 21:29:11&#xA;[buffer @ 0x7274e0] w:560 h:320 pixfmt:yuv420p&#xA;Output #0, yuv4mpegpipe, to &#x27;small.y4m&#x27;:&#xA;  Metadata:&#xA;    major_brand     : mp42&#xA;    minor_version   : 0&#xA;    compatible_brands: mp42isomavc1&#xA;    creation_time   : 2010-03-20 21:29:11&#xA;    encoder         : Lavf53.21.1&#xA;    Stream #0.0(und): Video: rawvideo, yuv420p, 560x320, q=2-31, 200 kb/s, 90k tbn, 30 tbc&#xA;    Metadata:&#xA;      creation_time   : 2010-03-20 21:29:11&#xA;Stream mapping:&#xA;  Stream #0.0 -> #0.0&#xA;Press ctrl-c to stop encoding&#xA;frame=  166 fps=  0 q=0.0 Lsize=   43576kB time=5.53 bitrate=64513.5kbits/s    &#xA;video:0kB audio:0kB global headers:0kB muxing overhead inf%&#xA;

    &#xA;&#xA;

    Head of the files

    &#xA;&#xA;

    Not sure if this is relevant, but the text content of both files begin like that :

    &#xA;&#xA;

    mobile_qcif_7.5fps.y4m&#xA;YUV4MPEG2 W176 H144 F15:2 Ip A128:117&#xA;FRAME&#xA;&#xA;small.y4m (invalid)&#xA;YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2&#xA;FRAME&#xA;

    &#xA;&#xA;

    Additional experiment

    &#xA;&#xA;

    Taking the sample mobile_qcif_7.5fps.y4m, turning it into a .mp4 file and then back into a .y4m produces an invalid file (at least for Chrome).

    &#xA;&#xA;

    Answer to comments in the answer of @SirDarius

    &#xA;&#xA;

    Following the suggestion of @SirDarius ; I tried the following commands.&#xA;They failed to produce a valid file.

    &#xA;&#xA;

    # [COMMAND]   # [RESULT] [HEADER]&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv444p -y small_yuv444p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C444 XYSCSS=444&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv422p -y small_yuv422p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C422 XYSCSS=422&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p -y small_yuv420p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv411p -y small_yuv411p.y4m   #&#xA0;KO   YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C411 XYSCSS=411&#xA;&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p9 -y small_yuv420p9.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p9 XYSCSS=420P9&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p12 -y small_yuv420p12.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p12 XYSCSS=420P12&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p14 -y small_yuv420p14.y4m #&#xA0;KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p14 XYSCSS=420P14&#xA;ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p16 -y small_yuv420p16.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p16 XYSCSS=420P16&#xA;

    &#xA;&#xA;

    When trying other formats (like yuv420p12be, which was in the output of -pix_fmts), I had the following output (hence my previous trials) :

    &#xA;&#xA;

    $  ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p12be -y small_yuv420p12be.y4m &#xA;ffmpeg version N-68884-g3ebd76a Copyright (c) 2000-2015 the FFmpeg developers&#xA;  built on Jan  6 2015 11:03:21 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)&#xA;  configuration: &#xA;  libavutil      54. 16.100 / 54. 16.100&#xA;  libavcodec     56. 19.100 / 56. 19.100&#xA;  libavformat    56. 18.100 / 56. 18.100&#xA;  libavdevice    56.  3.100 / 56.  3.100&#xA;  libavfilter     5.  6.100 /  5.  6.100&#xA;  libswscale      3.  1.101 /  3.  1.101&#xA;  libswresample   1.  1.100 /  1.  1.100&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x21d0220] overread end of atom &#x27;colr&#x27; by 1 bytes&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;small.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : mp42&#xA;    minor_version   : 0&#xA;    compatible_brands: mp42isomavc1&#xA;    creation_time   : 2010-03-20 21:29:11&#xA;    encoder         : HandBrake 0.9.4 2009112300&#xA;  Duration: 00:00:05.57, start: 0.000000, bitrate: 551 kb/s&#xA;    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)&#xA;    Metadata:&#xA;      creation_time   : 2010-03-20 21:29:11&#xA;      encoder         : JVT/AVC Coding&#xA;    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 83 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2010-03-20 21:29:11&#xA;[yuv4mpegpipe @ 0x21d8180] ERROR: yuv4mpeg can only handle yuv444p, yuv422p, yuv420p, yuv411p and gray8 pixel formats. And using &#x27;strict -1&#x27; also yuv444p9, yuv422p9, yuv420p9, yuv444p10, yuv422p10, yuv420p10, yuv444p12, yuv422p12, yuv420p12, yuv444p14, yuv422p14, yuv420p14, yuv444p16, yuv422p16, yuv420p16 and gray16 pixel formats. Use -pix_fmt to select one.&#xA;Output #0, yuv4mpegpipe, to &#x27;small_yuv420p12be.y4m&#x27;:&#xA;  Metadata:&#xA;    major_brand     : mp42&#xA;    minor_version   : 0&#xA;    compatible_brands: mp42isomavc1&#xA;    encoder         : Lavf56.18.100&#xA;    Stream #0:0(und): Video: rawvideo ([12][11]3Y / 0x59330B0C), yuv420p12be, 560x320, q=2-31, 200 kb/s, 7.50 fps, 7.50 tbn, 7.50 tbc (default)&#xA;    Metadata:&#xA;      creation_time   : 2010-03-20 21:29:11&#xA;      encoder         : Lavc56.19.100 rawvideo&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))&#xA;Could not write header for output file #0 (incorrect codec parameters ?): Input/output error&#xA;

    &#xA;&#xA;

    After that, I also tried to edit with an hexadecimal editor (bless) the small_yuv420p.y4m file. I replace C420mpeg2 by C420, and the file was accepted by Chrome.&#xA;What does the number in 420p[number] correspond to ? It is not explained there.&#xA;Is there any way to make ffmpeg output this kind of header files ?

    &#xA;&#xA;

    @SirDarius, thank you again for your help.

    &#xA;&#xA;

    The question

    &#xA;&#xA;

    (in case you forgot after this text blob)

    &#xA;&#xA;

    How can I convert the small.mp4 into a small.y4m file that has the same properties as the mobile_qcif_7.5fps.y4m file ?

    &#xA;

  • How to determine video codec of a file with FFmpeg

    24 août 2024, par GerryMulligan

    I often have problems reading AVI files with my TV's DVD player if they are not DivX or Xvid (e.g., DX50 is not readable). I'd like to make a fast script to determine the video codec of these files before burning them to CD-ROM or DVD.

    &#xA;

    The following prints the "container" of the video stream (mpeg4, mpeg2, etc), but not the codec :

    &#xA;

    ffmpeg -i file.avi&#xA;

    &#xA;