Recherche avancée

Médias (91)

Autres articles (29)

  • Soumettre bugs et patchs

    10 avril 2011

    Un logiciel n’est malheureusement jamais parfait...
    Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
    Si vous pensez avoir résolu vous même le bug (...)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (6436)

  • How can I convert a mp4 into an ogv with ffmpeg ? I am getting a "segmentation fault"

    8 mars 2020, par xrainbowuk

    I am trying to use ffmpeg to convert a mp4 video into an ogv and a webm. I am using a Mac and this is what I am putting into the terminal :

    ffmpeg -i "Hands-typing-(mobile-1080p-loop) copy.mp4" -codec:v libtheora -codec:a libvorbis -f ogv output.ogv

    This is what I am getting in response :

       ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
     built with Apple clang version 11.0.0 (clang-1100.0.33.17)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
     libavutil      56. 31.100 / 56. 31.100
     libavcodec     58. 54.100 / 58. 54.100
     libavformat    58. 29.100 / 58. 29.100
     libavdevice    58.  8.100 / 58.  8.100
     libavfilter     7. 57.100 /  7. 57.100
     libavresample   4.  0.  0 /  4.  0.  0
     libswscale      5.  5.100 /  5.  5.100
     libswresample   3.  5.100 /  3.  5.100
     libpostproc    55.  5.100 / 55.  5.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Hands-typing-(mobile-1080p-loop) copy.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42mp41
       creation_time   : 2020-03-04T20:14:21.000000Z
     Duration: 00:00:21.18, start: 0.000000, bitrate: 8201 kb/s
       Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 8085 kb/s, 30 fps, 30 tbr, 30k tbn, 60k tbc (default)
       Metadata:
         creation_time   : 2020-03-04T20:14:21.000000Z
         handler_name    : ?Mainconcept Video Media Handler
         encoder         : AVC Coding
       Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)
       Metadata:
         creation_time   : 2020-03-04T20:14:21.000000Z
         handler_name    : #Mainconcept MP4 Sound Media Handler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> theora (libtheora))
     Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis))
    Press [q] to stop, [?] for help
    zsh: segmentation fault  ffmpeg -i "Hands-typing-(mobile-1080p-loop) copy.mp4" -codec:v libtheora   -f

    I have also tried this, which doesn’t work :

    ffmpeg -i "Hands-typing-(mobile-1080p-loop) copy.mp4" -codec:v libtheora -qscale:v 3 -codec:a libvorbis \
     -qscale:a 3 -f ogv output.ogv

    I am struggling to find the answer to my question. Especially as there are so many posts about "segmentation faults".

    Any help is very much appreciated.

  • ios Crash when convert yuvj420p to CVPixelBufferRef use ffmpeg

    20 mars 2020, par jansma

    I need to get rtsp steam from ip camera and convert the AVFrame data to CVPixelBufferRef
    in order to send the data to other sdk

    First I use avcodec_decode_video2 to decode video data

    After decode the video I convert the data to CVPixelBufferRef this is my code

    size_t srcPlaneSize = pVideoFrame_->linesize[1]*pVideoFrame_->height;
    size_t dstPlaneSize = srcPlaneSize *2;
    uint8_t *dstPlane = malloc(dstPlaneSize);
    void *planeBaseAddress[2] = { pVideoFrame_->data[0], dstPlane };

    // This loop is very naive and assumes that the line sizes are the same.
    // It also copies padding bytes.
    assert(pVideoFrame_->linesize[1] == pVideoFrame_->linesize[2]);
    for(size_t i = 0; i/ These might be the wrong way round.
       dstPlane[2*i  ]=pVideoFrame_->data[2][i];
       dstPlane[2*i+1]=pVideoFrame_->data[1][i];
    }

    // This assumes the width and height are even (it's 420 after all).
    assert(!pVideoFrame_->width%2 && !pVideoFrame_->height%2);
    size_t planeWidth[2] = {pVideoFrame_->width, pVideoFrame_->width/2};
    size_t planeHeight[2] = {pVideoFrame_->height, pVideoFrame_->height/2};
    // I'm not sure where you'd get this.
    size_t planeBytesPerRow[2] = {pVideoFrame_->linesize[0], pVideoFrame_->linesize[1]*2};
    int ret = CVPixelBufferCreateWithPlanarBytes(
           NULL,
           pVideoFrame_->width,
           pVideoFrame_->height,
           kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange,
           NULL,
           0,
           2,
           planeBaseAddress,
           planeWidth,
           planeHeight,
           planeBytesPerRow,
           NULL,
           NULL,
           NULL,
           &pixelBuf);

    After I run the app the application will crash on

    dstPlane[2*i  ]=pVideoFrame_->data[2][i];

    How to resove this question ?

    this is console in xcode

    All info found
    Setting avg frame rate based on r frame rate
    stream 0: start_time: 0.080 duration: -102481911520608.625
    format: start_time: 0.080 duration: -9223372036854.775 bitrate=0 kb/s
    nal_unit_type: 0, nal_ref_idc: 0
    nal_unit_type: 7, nal_ref_idc: 3
    nal_unit_type: 0, nal_ref_idc: 0
    nal_unit_type: 8, nal_ref_idc: 3
    Ignoring NAL type 0 in extradata
    Ignoring NAL type 0 in extradata
    nal_unit_type: 7, nal_ref_idc: 3
    nal_unit_type: 8, nal_ref_idc: 3
    nal_unit_type: 6, nal_ref_idc: 0
    nal_unit_type: 5, nal_ref_idc: 3
    unknown SEI type 229
    Reinit context to 800x608, pix_fmt: yuvj420p
    (lldb)

    enter image description here

  • First upload video and display upload progress and then convert video using ffmpeg and display progress

    21 avril 2020, par Salman

    I am working on a video sharing platform. What I want to do is that when user upload a video, it first shows an upload progress bar and after completing upload it shows another progress bar for ffmpeg execution time remaining.

    



    I am using this jQuery code for displaying upload progress bar.

    



    $("body").on("submit", "form[name='upload']", function(e) {
    e.preventDefault();
    var formData = new FormData(this);
    $.ajax({
        cache: false,
        contentType: false,
        data: formData,
        dataType: "json",
        method: "POST",
        processData: false,
        url: "upload.php",
        error: function() {
            alert("Sorry, something went wrong!");
        },
        xhr: function() {
            var xhr = new window.XMLHttpRequest();
            xhr.upload.addEventListener("progress", function(evt) {
                if (evt.lengthComputable) {
                    var percentComplete = (evt.loaded / evt.total) * 100;
                    $(".upload .progress-bar").css({
                        "width": percentComplete + "%"
                    });
                }
            }, false);

            return xhr;
        }
    });
});


    



    And I am using this php code for executing video in ffmpeg.

    



    shell_exec('ffmpeg -i uploads/video.mp4 -c:a copy -s 256x144 uploads/video_144p.mp4 > uploads/output.log 2>&1');


    



    It generates an "output.log" file.
Now in jQuery I can GET the content of this log file and display the progress after little calculations.
This is the jQuery code

    



    $.ajax({
    type: "GET",
    cache: false,
    url: "uploads/output.log",
    success: function(response) {
        var duration = 0;
        var time = 0;
        var progress = 0;

        var matches = (response) ? response.match(/Duration: (.*?), start:/) : [];
        if (matches.length > 0) {
            var rawDuration = matches[1];

            var arrayReverse = rawDuration.split(":").reverse();
            duration = parseFloat(arrayReverse[0]);
            if (arrayReverse[1]) duration += parseInt(arrayReverse[1]) * 60;
            if (arrayReverse[2]) duration += parseInt(arrayReverse[2]) * 60 * 60;

            matches = response.match(/time=(.*?) bitrate/g);
            console.log(matches);

            if (matches.length > 0) {
                var rawTime = matches.pop();

                if (Array.isArray(rawTime)) {
                    rawTime = rawTime.pop().replace("time=", "").replace(" bitrate", "");
                } else {
                    rawTime = rawTime.replace("time=", "").replace(" bitrate", "");
                }

                arrayReverse = rawTime.split(":").reverse();
                time = parseFloat(arrayReverse[0]);
                if (arrayReverse[1]) time += parseInt(arrayReverse[1]) * 60;
                if (arrayReverse[2]) time += parseInt(arrayReverse[2]) * 60 * 60;

                progress = Math.round((time / duration) * 100);
            }
        }
        $(".execution .progress-bar").css({
            "width": progress + "%"
        });
    }
});


    



    Now I want a single AJAX code which will upload my file first and display "Upload progress" and after that it will execute my video in php FFMPEG and display "Execution progress"