Recherche avancée

Médias (3)

Mot : - Tags -/spip

Autres articles (49)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

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

  • Why are Cb and Cr planes displaced differently from lum by the displace complex filter in ffmpeg ?

    6 mai 2017, par Neb

    I have a video encoded with the yuv420p pixel format and I want to displace its pixels. I’m using ffmpeg and its new displace filter. The filter takes as inputs (the video to be displaced and) two displacement maps respectively for X and Y axis. I decided to create the displacement maps directly into ffmpeg using the nullsrc video source filter and the geq filter to specify the value of the three planes : lum, Cb, Cr. The script is the following :

    ffmpeg INPUT.mp4 -f lavfi -i nullsrc=size=${WIDTH}x${HEIGHT}:d=0.1,geq='lum=128+30*sin(2*PI*X/400):Cb=128+30*sin(2*PI*X/400):Cr='128+30*sin(2*PI*X/400)' -f lavfi -i nullsrc=size=${WIDTH}x${HEIGHT}:d=0.1,geq='lum=128+30*sin(2*PI*X/400):Cb=128+30*sin(2*PI*X/400):Cr=128+30*sin(2*PI*X/400)' -lavfi '[0][1][2]displace' OUTPUT.mp4

    I used the example provided in the documentation of ffmpeg, since the expression used in geq is irrelevant for the purposes of the problem.

    At the and of the computation, I get the pixels of the input video not properly displaced, meaning that I can clearly see a sort of ghost carrying-color-information video under a displaced but b/w one.
    After some tests, I noticed that the displacemnt map created had only the luma plane displaced correctly while the chrominance planes were displaced, but differently from luma, which is the origin of the planes disalignment in the intput video as you can see in the following extract frames :

    Planes separated

    I also noticed that the video describing the Cb and Cr planes of the displacement maps have half resolution of the luma plane.

    My question is : how can i setup correctly the Cr and Cb planes in the geq definition so that they are exactly identical to the luma plane ?

    It would be also great if someone could explain me why ffmpeg gives me an output so much different for luma and Cb, Cr planes even if the function provided is the same.

    If, it can help, i’m using ffmpeg 3.3-static build.

    Thanks for your time.

  • Prepare mp4 videos for Media Source Extensions API using ffmpeg

    6 février 2018, par ler

    This command produce init.mp4 + bunch of m4s files, i’m trying to play them using MSE :

    ffmpeg -i <input file="file" /> -f hls -hls_segment_type fmp4 -c:v copy playlist.m3u8

    This is the client side code i’m using :

    var socket = io();
    var video = document.querySelector('video');
    var mimeCodec = 'video/mp4; codecs="avc1.64000d,mp4a.40.2"';
    if ('MediaSource' in window &amp;&amp; MediaSource.isTypeSupported(mimeCodec)) {
       var mediaSource = new MediaSource;
       video.src = URL.createObjectURL(mediaSource);
       mediaSource.addEventListener('sourceopen', sourceOpen);
    } else {
       console.error('Unsupported MIME type or codec: ', mimeCodec);
    }
    function sourceOpen (_) {
     var mediaSource = this;
     var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
     sourceBuffer.mode = 'sequence';
     socket.on('broadcast', function (newPiece) {
         // here i'm getting the buffer of the video  == buffer
         sourceBuffer.addEventListener('updateend', function (_) {
           video.play().then(function() { }).catch(function(error) { });
         });
         sourceBuffer.appendBuffer(buffer); // when the seconde video comes i append it's buffer
     })
    };

    Everything works fine when i send init.mp4 file followed by playlist0.m4s, playlist1.m4s, playlist2.m4s, .....
    But when i try to play init.mp4 file followed immediately 6,7,8 not 0,1,2 meaning playlist6.m4s, playlist7.m4s, playlist8.m4s, ...., it didn’t work.
    I don’t know why, this supposed to be live video, the viewer that is watching the live from the beginning gets init.mp4, playlist0.m4s, playlist1.m4s, playlist2.m4s, .....
    Someone that came after 5 minutes gets something like this init.mp4, playlist32.m4s, playlist33.m4s, playlist34.m4s, .... and so on, but so far it works only for the viewer that get’s init.mp4, playlist0.m4s, playlist1.m4s, playlist2.m4s, ..... the video can’t play for the others

  • FFMPEG libraries : Bitstream "h264_mp4toannexb" filter does not work

    25 décembre 2013, par user2677612

    We are using FFmpeg libraries git-ee94362 libavformat v55.2.100. Our purpose is to mux two streams (video and audio) into M3U8 playlist using HLS.

    We are using AV_CODEC_ID_H264 output encoder, AV_PIX_FMT_YUV420P output video pixel format and CODEC_FLAG_GLOBAL_HEADER flag for the encoder.

    The last causes us to use "h264_mp4toannexb" bit stream filter.

    So, here is the code snippet :

    AVPacket outpkt = {0};
    int isGotVideoPacket = 0;

    av_init_packet(&amp;outpkt);

    out_video_frame->pts = (int64_t) (video_frame_count * in_video_frame_duration / av_q2d(out_video_stream->time_base));

    int ret = avcodec_encode_video2(enc_out_video_ctx, &amp;outpkt, out_video_frame[i], &amp;isGotVideoPacket);

    assert(0 &lt;= ret);

    if ((1 == isGotVideoPacket) &amp;&amp; (0 &lt; outpkt.size)) {

        AVPacket new_outpkt = outpkt;

        if ((AVBitStreamFilterContext*) 0 != vbsf_ctx) {
             AVPacket new_outpkt = outpkt;

              ret = av_bitstream_filter_filter(vbsf_ctx, enc_out_video_ctx, (const char*)0, &amp;new_outpkt.data, &amp;new_outpkt.size, outpkt.data, outpkt.size, outpkt.flags &amp; AV_PKT_FLAG_KEY);

              if (ret > 0)
              {
                 outpkt = new_outpkt;
              }
              else
              {
                 // We get ret = -22
                 char errbuf[128] = "";

                 // Both the functions get "Error number -22 occurred" that don&#39;t explain anything
                 av_strerror (ret, errbuf, 128);
                 av_make_error_string (errbuf, 128, ret);          
               }

               assert(0 &lt;= ret);

        }

        outpkt->stream_index = output_video_stream->index;

        // If to comment av_bitstream_filter_filter() and "if-else", then
        // At frame #37 we get the following error from av_interleaved_write_frame():
        // [mpegts @ 09628140] H.264 bitstream malformed, no startcode found, use the h264_mp4toannexb bitstream filter (-bsf h264_mp4toannexb).
        ret = av_interleaved_write_frame(ofmt_ctx, &amp;outpkt);

        assert(0 &lt;= ret);                          
    }

    Our questions :

    1. What is the meaning of the "-22" error from av_bitstream_filter_filter()?
    2. Where can we get full FFMPEG error code description list?
    3. If we are using av_bitstream_filter_filter() right? If no, what is the right way?

    Andrey Mochenov.