Recherche avancée

Médias (2)

Mot : - Tags -/rotation

Autres articles (101)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (9725)

  • doc : clarify option on looping infinitely in movie filter

    2 février 2017, par Werner Robitza
    doc : clarify option on looping infinitely in movie filter
    

    Clarify that setting loop=0 is required to make the stream loop infinitely, rather than saying that a value "less than 1" is needed.

    Signed-off-by : Lou Logan <lou@lrcd.com>

    • [DH] doc/filters.texi
  • "invalid argument" for av_buffersrc_write_frame / av_buffersrc_add_frame

    1er février 2017, par TheSHEEEP

    I am trying to use FFmpeg C api to create a filter to merge two audio streams. Trying to follow the code from here : Implementing a multiple input filter graph with the Libavfilter library in Android NDK

    Everything seems to be alright.

    However, as soon as I call av_buffersrc_write_frame (or av_buffersrc_add_frame or av_buffersrc_add_frame_flags, it doesn’t matter), FFmpeg just reports "invalid argument" and nothing else - an utterly useless error message, as it could mean everything.
    Which argument is invalid ? What is wrong about it ? Nobody knows.

    I am initializing the graph and "grabbing" the contexts of the buffer sources for later use like this :

    // Alloc filter graph
    *filter_graph = avfilter_graph_alloc();
    if ((*filter_graph) == NULL) {
       os::log("Error: Cannot allocate filter graph.");
       return AVERROR(ENOMEM);
    }

    // Building the filter string, ommitted

    int result = avfilter_graph_parse2(*filter_graph, filterString.c_str(), &amp;gis, &amp;gos, NULL);
    if (result &lt; 0)
    {
       char errorBuf[1024];
       av_make_error_string(errorBuf, 1024, result);
       log("Error: Parsing filter string: %s", errorBuf);
       return AVERROR_EXIT;
    }

    // Configure the graph
    result = avfilter_graph_config(*filter_graph, NULL);
    if (result &lt; 0)
    {
       char errorBuf[1024];
       av_make_error_string(errorBuf, 1024, result);
       log("Error: Configuring filter graph: %s", errorBuf);
       return AVERROR_EXIT;
    }

    // Get the buffer source and buffer sink contexts
    for (unsigned int i = 0; i &lt; (*filter_graph)->nb_filters; ++i) {
       AVFilterContext* filterContext = (*filter_graph)->filters[i];

       // The first two filters should be the abuffers
       std::string name = filterContext->name;
       if (name.find("abuffer") != name.npos &amp;&amp; i &lt; 2) {
           inputs[i].buffer_source_context = filterContext;
       }

       // abuffersink is the one we need to get the converted frames from
       if (name.find("abuffersink") != name.npos) {
           *buffer_sink_context = filterContext;
       }
    }

    There are absolutely no errors in the initialization. At least FFmpeg has only this to say about it, which I think looks good :

    FFMPEG: [Parsed_abuffer_0 @ 0ddfe840] Setting 'time_base' to value '1/48000'
    FFMPEG: [Parsed_abuffer_0 @ 0ddfe840] Setting 'sample_rate' to value '48000'
    FFMPEG: [Parsed_abuffer_0 @ 0ddfe840] Setting 'sample_fmt' to value '1'
    FFMPEG: [Parsed_abuffer_0 @ 0ddfe840] Setting 'channel_layout' to value '3'
    FFMPEG: [Parsed_abuffer_0 @ 0ddfe840] Setting 'channels' to value '2'
    FFMPEG: [Parsed_abuffer_0 @ 0ddfe840] tb:1/48000 samplefmt:s16 samplerate:48000 chlayout:3
    FFMPEG: [Parsed_abuffer_1 @ 0ddfe500] Setting 'time_base' to value '1/44100'
    FFMPEG: [Parsed_abuffer_1 @ 0ddfe500] Setting 'sample_rate' to value '44100'
    FFMPEG: [Parsed_abuffer_1 @ 0ddfe500] Setting 'sample_fmt' to value '1'
    FFMPEG: [Parsed_abuffer_1 @ 0ddfe500] Setting 'channel_layout' to value '3'
    FFMPEG: [Parsed_abuffer_1 @ 0ddfe500] Setting 'channels' to value '2'
    FFMPEG: [Parsed_abuffer_1 @ 0ddfe500] tb:1/44100 samplefmt:s16 samplerate:44100 chlayout:3
    FFMPEG: [Parsed_volume_3 @ 0ddfe580] Setting 'volume' to value '2'
    FFMPEG: [Parsed_aresample_4 @ 0ddfe660] Setting 'sample_rate' to value '48000'
    FFMPEG: [Parsed_aformat_5 @ 0ddfe940] Setting 'sample_fmts' to value 'fltp'
    FFMPEG: [Parsed_aformat_5 @ 0ddfe940] Setting 'channel_layouts' to value '3'

    Then, I am trying to add a frame (that has been decoded beforehand) like this :

    // "buffer_source_context" is one of the "inputs[i].buffer_source_context" from the code above
    int result = av_buffersrc_write_frame(  buffer_source_context,
                                               input_frame);
    if (result &lt; 0) {
       char errorBuf[1024];
       av_make_error_string(errorBuf, 1024, result);
       log("Error: While adding to buffer source: %s", errorBuf);
       return AVERROR_EXIT;
    }

    And the result is the mentioned "invalid argument".

    The buffer_source_context is one of those noted from the code above and the input_frame is perfectly fine as well.
    Before the filtering code was added, the same frame was passed to an encoder instead without a problem.

    I am at a loss at what the error could be here. I log FFmpeg errors at the lowest possible level, but not a single error is shown. I am using FFmpeg 3.1.1.

  • How to cheaply "undo" a mosaic (i.e. split an image into halves or quadrants) with ffmpeg ?

    5 mars 2020, par John Allard

    FFMPEG makes it easy to take multiple inputs and stack them into a mosaic video. I am looking for a way to do the opposite, specifically I would like take a video stream that is composed of four streams stacked into quadrants and split it into four separate videos consisting of the coordinates

    video1 = [0, 0.5*w, 0, 0.5*h]
    video2 = [0.5*w, w, 0, 0.5*h]
    video3 = [0, 0.5*w, 0.5*h, h]
    video4 = [0.5*w, w, 0.5*h, h]

    I know that I can do this with four separate ffmpeg calls using the crop filter but this seems to be unnecessarily expensive. Is there a way to do this in a single call ?